England fast bowler Mark Wood came out after a lengthy rain break and plunged South Africa into trouble in their second innings on the fourth day of the third Test at St George's Park on Sunday.
South Africa, forced to follow on after being bowled out for 209, were 44 for three at tea, still 246 runs short of making England bat again.
Wood used his extreme pace to send Dean Elgar's off stump flying out of the ground before he had Zubayr Hamza feeling for a ball outside his leg stump to present a catch to wicketkeeper Jos Buttler.
England captain Joe Root struck a third blow for the tourists when he trapped Pieter Malan leg before wicket in the last over before tea, leaving England well-placed to take a 2-1 lead in the four-match series despite uncertain weather.
Following a lengthy delay on Saturday, the players were off for more than three hours, including the lunch break, on Sunday.
England enforced the follow-on after they needed only 28 balls to dismiss South Africa's last four batsmen at the start of play.
Stuart Broad took three wickets as South Africa added only one run to their overnight total.
Armed with the second new ball, Broad struck with the fourth delivery of the morning when Vernon Philander missed a drive against a full delivery which swung in between bat and pad. He was out for 27.
Sam Curran uprooted Quinton de Kock's middle stump with the fifth ball of the next over with the left-hander missing an extravagant drive against a ball angled in from the left-armed bowler. De Kock had not added to his overnight score of 63.
Keshav Maharaj was bowled off a bottom edge when he tried to pull a ball from Broad before Kagiso Rabada, who scored the only run in the collapse, hit a simple catch to mid-off to give Broad his third wicket. Broad finished with three for 30.
Wood, bowling around the left-handed wicket, fired a fast delivery through Elgar's defences with the eighth ball after the resumption of play in the afternoon before following up with the wicket of Hamza.
Dean Elgar (front) was bowled by Mark Wood in South Africa's second innings