Stephen Cook and Hashim Amla centuries put South Africa on top
Stephen Cook scored a century on his South Africa debut and Hashim Amla made his 25th Test ton before England took four wickets in the final session to ensure the Proteas closed on 329-5 on day one at Centurion.
A devastating spell from Stuart Broad at the Wanderers last Saturday ensured England took an unassailable 2-0 series lead with one match remaining.
Cook came in for a long-awaited international bow at SuperSport Park, one of five changes following the defeat in Johannesburg, and the 33-year-old made up for lost time with an assured knock of 115 - becoming the 100th player to score a century in his first Test.
Amla (109) also made the most of a flat pitch and the England bowlers not being at their best, with the former captain and Cook - who put on 202 for the second wicket - also dropped on five and 47 respectively.
South Africa were 237-1 in the evening session, but captain AB de Villiers was dismissed for a second successive duck as the tourists made inroads after being made to toil for much of the day.
Cook, whose father Jimmy was out first ball on his Test debut, settled any nerves by dispatching a juicy half-volley from James Anderson to the boundary from the first ball of the match and was organised at the crease as he looked to score predominantly through the leg side.
Dean Elgar (20) was left ruing his luck when James Taylor somehow claimed another stunning catch at short-leg - having taken two in the third Test - after the left-hander gave Moeen Ali (2-53) the charge in his first over.
Amla was given a life before lunch when he edged a Ben Stokes (1-57) delivery, but Alastair Cook put a difficult chance down when wicketkeeper Jonny Bairstow dived in front of him.
Stephen Cook and Amla saw the Proteas through to 107-1 at lunch, then the debutant was given a let-off by Bairstow - who failed to hold on after he edged Broad behind.
The composed Cook rubbed salt into Broad's wounds by punching him for four to bring up his maiden Test half-century and Amla scored freely after lunch, with England's bowlers looking short of ideas.
South Africa were 224-1 at tea, but the breakthrough finally came when Amla inside-edged Stokes into his stumps after hitting 19 fours in his 169-ball innings and De Villiers gave Joe Root the chance to take a fine slip catch in the following over from Broad (1-65).
Cook's heart would have been in his mouth when he was struck on the pad by a Stokes inswinger on 98, but was given not out by Kumar Dharmasena and Hawkeye's verdict was umpire's call.
The patient Cook's moment finally came to celebrate a fine century when he took two off the next delivery and although he played on to Chris Woakes (1-74) after striking 14 fours and JP Duminy (16) also fell, Temba Bavuma (32 not out) and Quinton de Kock (25no) saw South Africa through to stumps.