Ashwell Prince's second hundred in as many matches against England helped give South Africa a significant first innings lead in the second Test at Headingley in Leeds on Saturday.
The Proteas, when bad light forced an early close on the second day, were 322 for four in reply to England's 203, a lead of 119.
Prince was 134 not out, following his 101 in the first innings of the drawn first Test at Lord's, and AB de Villiers 70 not out after South Africa had lost just one wicket in the day's play.
Their unbroken fifth-wicket stand was worth 179 in 61 overs after they'd come together at 143 for four.
South Africa vice-captain Prince has now turned nine of his 17 Test fifties into hundreds and at stumps he was closing in on his Test-best score of 139 not out against Zimbabwe at Centurion in 2005, his first hundred at this level.
Shock debutant Darren Pattinson, born in the English east coast port town of Grimsby but brought up in Australia, took the only wicket to fall on Saturday - his first in Tests - and he needed the help of a questionable umpiring decision from Australian umpire Daryl Harper to have Hashim Amla lbw for 38.
South Africa started the final session on 262 for four, 59 ahead, with 31-year-old left-hander Prince, in his 43rd Test, exactly 100 not out and de Villiers unbeaten on 44.
De Villiers went to a 126-ball fifty, including five fours, with a two off James Anderson.
He then moved up a gear, stylishly forcing Anderson off the backfoot for four through the offside and pulling Pattinson for another boundary.
England took the new ball before tea but Prince's response was to drive fast bowler Andrew Flintoff, appearing in his first Test for 18 months because of injury, down the ground for four to go to 99.
A single off Flintoff's fellow Lancashire quick Anderson saw Prince to his second Test hundred against England off 194 balls, with two sixes and 11 fours.
After 58 overs of an all-seam attack on a placid pitch increasingly favouring batsmen, England captain Michael Vaughan brought on Monty Panesar, whose 60 second innings overs at Lord's failed to yield a wicket.
And the left-arm spinner's first few in Leeds were hardly more rewarding with Prince striking him for a straight six to complete his fifty.
Pattinson struck in the morning session after South Africa started the day on 101 for three.
In for injured Nottinghamshire colleague Ryan Sidebottom, Pattinson had Amla, who like Prince made a hundred at Lord's, lbw when a full toss struck the batsman's front pad.
It was a close call, with television replays suggesting the ball was missing leg-stump, but Harper eventually raised his finger to give Pattinson, the fourth seamer used by Vaughan on Saturday, a moment to cherish.
Former roof tiler Pattinson, who turns 30 in a fortnight, only made his senior debut for Australian state Victoria last year.
Pattinson, who joined Nottinghamshire at the start of the season, caught England's attention with 29 first-class wickets in six matches this term for the Midlands county at 20.86 apiece.
But with the likes of Matthew Hoggard, omitted on his Yorkshire home ground, and fellow 2005 Ashes-winning pacemen Simon Jones and Stephen Harmison, as well as longstanding squad member Chris Tremlett, all available Pattinson was a controversial choice.