England fought gamely on day three of the fourth Test at Centurion but face an uphill task to save the match after Kagiso Rabada took 7-112.
The 20-year-old quick recorded the best South African figures against England since the Proteas’ readmission to undermine half-centuries from Alastair Cook, Joe Root and Moeen Ali, as the home side secured a 133-run first-innings advantage.
South Africa then reached 42 for one at stumps, a lead of 175, on a pitch offering plenty of variable bounce to the seamers and increasing turn for the spinners.
England began the day 138 for two, still 337 in arrears and with all eyes on Cook, who needed to add 50 to his overnight 67 to become the youngest player to reach 10,000 Test runs.
He managed nine before edging Morne Morkel to Quinton de Kock behind the stumps on 76, leaving the left-hander 41 short of a milestone which could well arrive during the second innings.
Root fell for the same score, and in similar fashion – although this time Rabada was the bowler to induce a nick.
That sparked a pre-lunch collapse as James Taylor and Jonny Bairstow fell in Rabada’s last over before the break, caught behind pulling and attempting to leave respectively.
Ben Stokes produced a typically aggressive 33 before clipping Rabada to Hashim Amla at first slip, and at that stage England were still 24 shy of avoiding the follow-on.
Moeen and Chris Woakes ensured England would not have to bat again with a stand of 43 either side of a rain delay.
The pair played some pleasing shots, particularly through the cover region, before Woakes edged the part-time spin of JP Duminy into de Kock’s pad and the ball looped up kindly for Dean Elgar as the Warwickshire all-rounder departed for 26.
Stuart Broad handed Rabada his seventh wicket with a tame pull to Stephen Cook on the boundary, and Moeen was last man out for 61 when he was caught by Dane Piedt on the cover fence attempting to heave Morkel over the rope.
England needed early wickets, and James Anderson made a breakthrough in the third over as he squared Elgar up and Bairstow held a sharp chance behind the stumps.
It took Anderson to 431 Test victims and level with New Zealand great Sir Richard Hadlee in seventh on the all-time list of Test wicket-takers.
But Hashim Amla survived a thick edge which Alex Hales at third slip could only get fingertips too, and he and Stephen Cook muddled through a testing hour before bad light brought play to a close for the day.