England lost four wickets before lunch as Kagiso Rabada bowled South Africa into a dominant position on the third morning of the final Test.
The tourists slumped from 138 for two at the start of play to 211 for six at lunch in Centurion, with Rabada dismissing Joe Root, James Taylor and Jonny Bairstow to complete a fine five-wicket haul.
Captain Alastair Cook was first man out, undone by a beauty from Morne Morkel.
All four batsmen were caught behind by Quinton de Kock and with the pitch showing signs of uneven bounce, England face a major battle to stay in the game.
Cook had started on 67, needing 50 more to become the first Englishman to 10,000 Test runs, but never looked likely to do so.
He managed just nine runs in the first hour before edging a fine Morkel delivery, angled in and seaming away again.
Root had been playing a different game to his skipper, resuming on 31no but quickly assuming the senior role.
Having found the middle with a drive and an uppercut against Kyle Abbott he went after Rabada, scoring 15 off his fourth over of the day.
Four of those runs came via a streaky edge wide of gully but he quickly tightened up outside off stump and punched a pair of commanding boundaries off the back foot to reach his 19th half-century from 98 balls.
Root was given caught behind off Dane Piedt on 67 but had the verdict overturned when replays showed no bat involved.
Rabada returned for another burst before the interval and it proved an inspired turn.
First he beat Root with a full ball that invited the drive but grazed the outside edge on its way past.
James Taylor was next, out for a curious 14.
He had drilled his first ball for four down the ground and timed another couple nicely, but the number five had also flapped at a handful of short balls.
It came as no surprise when he aimed an ambitious pull at Rabada but only succeeded in tickling it through to De Kock.
All Bairstow needed to do was see off the remainder of the over to reach the break but Rabada had him inside three balls, shading one back in off the seam and flicking a glove.