England fought back strongly in the evening session after centuries from Hashim Amla and debutant Stephen Cook handed South Africa the early initiative on day one of the fourth and final Test at Centurion.
Another stunning James Taylor catch at short-leg gave the tourists, who with a 2-0 lead already have the series in the bag, an early breakthrough after AB de Villiers won the toss and chose to make first use of a flat deck.
Amla produced a string of stylish cover drives off front and back foot as he raced to three figures and 33-year-old Stephen Cook became the 100th Test debutant to score a century shortly after tea.
But from a position of dominance at 237 for one, the Proteas lost four wickets for 36 runs as England rallied late in the day.
However, there was a final twist as Temba Bavuma and Quinton de Kock scored freely against the second new ball to add an unbroken 56-run stand for the sixth wicket, with South Africa 329 for five at stumps.
Stephen Cook and Dean Elgar shared 35 for the first wicket and were largely untroubled until Moeen Ali was brought on as first change.
Left-hander Elgar advanced down the track to the off-spinner on 20 and, showing quick wits, Taylor followed, with Elgar's attempted flick through midwicket hitting the Nottinghamshire man in the stomach before the ball wedged between his legs.
Amla survived an early scare as he was dropped by Alastair Cook at first slip after edging Ben Stokes while in single figures.
Stephen Cook was also handed a reprieve on 47, with Jonny Bairstow shelling a fingertip chance off Stuart Broad, and England paid a heavy price as the pair added 202 for the second wicket.
Amla drove imperiously throughout his innings and Cook looked solid in defence whilst latching quickly on to any loose deliveries - of which there were too many for England's liking in a fruitless afternoon session.
The tea interval was extended by five minutes after a pipe burst at square-leg, but once play did resume the visitors spurned a couple of good chances.
Broad found Amla's edge with a leg-cutter which fell short of slip, and the seamer was in the thick of the action in the next over when Stephen Cook tried to call through a poorly-judged single to cover only for Broad's shy at the non-striker's end to miss the stumps when a direct hit would have sent the debutant packing.
Amla finally fell for 109 when he played on to Stokes, and de Villiers edged his second ball from Broad to Joe Root at second slip to depart for a duck.
Stephen Cook, with his father and former Somerset player Jimmy watching on, became the fourth oldest Test debutant to make a hundred, but chopped on for 115 attempting to cut Chris Woakes, who came into the side for the injured Steven Finn.
Moeen then trapped JP Duminy lbw for 16, before Bavuma and de Kock stifled England's recovery.
England return to Cardiff this year for two One-Day Internationals as Glamorgan host the final games of both the Sri Lanka and Pakistan Royal London Series at The SSE SWALEC. Adult tickets are priced from £35, juniors £10, and a family ticket only £80. Click here for further details