Kagiso Rabada took the prize wicket of Ben Stokes as South Africa held England to 260 for six on Friday's first day of the fourth Test at Old Trafford.
All-rounder Stokes, fresh from a hundred in England's 239-run victory in the third Test at The Oval, was leading a revival with the bat.
But fast bowler Rabada struck with the new ball in the penultimate over of the day when a full-length delivery, which surprised Stokes, smashed into the base of the stumps and bowled the left-handed batsman for 58.
Rabada, banned from the second Test for swearing at Stokes in the series opener, yelled in joy.
He finished the day with figures of two for 52 in 18 overs, but the worth of South Africa's efforts as they seek a win that would see them end the series all square at 2-2 will only become fully apparent when they bat.
Jonny Bairstow, who might have fallen for four, was 33 not out and nightwatchman Toby Roland-Jones unbeaten on nought at the close.
Jonny Bairstow’s inquires the umpires over the legality of the catch
All of South Africa's frontline bowlers in an attack missing injured pacemen Vernon Philander and Chris Morris, both ruled out with lower back strains, took wickets on Friday.
Fast bowler Morne Morkel deserved better than figures of one for 58 in 19 overs, while left-arm spinner Keshav Maharaj kept things tight in a return of one for 54 in 29 overs.
Meawhile Duanne Olivier, recalled along with batsman Theunis de Bruyn, took two for 72 in 19 overs including having England captain Joe Root lbw for 52.
"The boys will be happy with the performance today," paceman Olivier told Sky Sports.
"When Root missed that delivery, I knew it was going to hit the stumps. There was no doubt in my mind."
Olivier added: "If we can do the basics right, we can disrupt England."
Paul Farbrace, the England assistant coach, accepted it had been a tough day for the hosts.
"Morne Morkel was outstanding and Maharaj has bowled with real control," he said, adding: "I think we battled well."
Root made a fifty for the tenth straight Test. But only two of those innings have yielded centuries.
England captain is congratulated by his partner after reaching 5000 runs © AFP
Root's 'conversion rate' of Test fifties into hundreds of 28.57 percent is modest for a player of his ability and he has previously acknowledged it is something he needs to improve in an otherwise impressive record.
India's Virat Kohli boasts a conversion rate of 54.83 percent,while Australia's Steve Smith (50) and New Zealand's Kane Williamson (40.47) are also well ahead of fellow leading batsman Root in this regard.
England were unchanged from the side that triumphed at The Oval, a result that left Root on the brink of a win in his first Test series as England captain.
Root again won the toss and batted, only to see struggling left-handed opener Keaton Jennings fall for 17 when the South Africa-born left-hander was caught behind by schoolboy team-mate Quinton de Kock off Olivier.
The Essex duo of Alastair Cook (46) and Tom Westley (29) both exited after lunch with England on 92.
Cook was caught behind off Maharaj before de Kock's brilliant diving catch, this time off Rabada, accounted for Westley and gave the wicket-keeper his 100th Test dismissal.
Dawid Malan, looking for a big score after managing just 11 runs in total on Test debut at The Oval, made 18 before edging Morkel to South Africa captain Faf du Plessis at second slip.
But another example of Morkel's bad luck this series came when Root nicked the towering quick on 40, only for de Kock to remain inexplicably still for what his catch as the ball went for four.
Fortunately for de Kock, it was not an expensive error, with Olivier the beneficiary of a misjudgement by Root.
During his innings Root, at 26 years and 217 days, became the third youngest player after India legend Sachin Tendulkar (25 years, 301 days) and Cook (26 years and 10 days) to score 5,000 Test runs.
Bairstow appeared to be out for four, but umpire Kumar Dharmasena asked for a review that saw Dean Elgar's slip catch off Maharaj overturned.