South Africa, at lunch on the third day of the second Test here on Sunday, were 384 for five in reply to England's 203, a commanding lead of 181.
AB de Villiers was 103 not out and Mark Boucher eight not out.
Pattinson, a controversial selection as he was brought up in Australia albeit born in the east coast English port town of Grimsby, had taken the only wicket to fall on Saturday when he had Hashim Amla lbw.
But, as happened then, he had to wait his turn on Sunday behind fellow pace bowlers James Anderson, Andrew Flintoff and Stuart Broad.
However, in his second over of the day, the 29-year-old got the breakthrough England so badly needed when, bowling from around the wicket, he induced an edge from Prince outside-stump to give wicket-keeper Tim Ambrose a simple catch.
Prince, who'd also made a century in the drawn first Test at Lord's, had batted for nearly seven hours, facing 284 balls with two sixes and 17 fours.
His stand of 212 in 75 overs with de Villiers was a new South Africa record for the fifth-wicket against England, surpassing the 192 shared by Gary Kirsten and Boucher at Durban in 1999.
De Villiers though made Pattinson pay for dropping short on a placid pitch when he cut him through the offside for four in front of square to go to 99.
A fired-up Flintoff twice beat de Villiers, who'd angered England on Friday by claiming to have caught Andrew Strauss when the ball had in fact bounced, outside off-stump.
But having spent 13 balls on 99, his single off Flintoff saw de Villiers complete his second Test century against England, off 264 balls with 11 fours.
Flintoff's mood would not have been improved when Boucher, on eight, edged him to second slip only for Alastair Cook to drop the catch.
South Africa resumed on 322 for four. Prince was 134 not out and de Villiers 70 not out.
The duo's running between the wickets had been a feature of their stand and they were quick off the mark on Sunday with de Villiers taking two off Anderson to Monty Panesar at square leg.
But Anderson and fellow Lancashire quick Flintoff, playing his first Test in 18 months after being out with ankle and side injuries, soon settled into a probing line and length.
Flintoff's initial three over spell saw him concede just one run while Anderson kept things tight in a nine-over stint costing 19 runs.
However, when first change Stuart Broad dropped short, with his fifth ball, de Villiers cut him for four.
Prince then confidently drove Broad on the up for four through extra-cover to go past his previous highest Test score of 139 not out against Zimbabwe at Centurion in 2005, his first hundred at this level.