Marco Jansen and Keshav Maharaj took the Proteas into a 124-run lead over England in the first Test at Lord’s on Thursday following a fine 73 from Sarel Erwee.
England captain Ben Stokes had bowled his side back into the game when he removed well-set opener Erwee and Rassie van der Dussen (19) in quick succession to leave the Proteas 192-5.
But come stumps on the second day, South Africa were 289-7.
Jansen was 41*, having added 72 for with Maharaj (41) as the seventh-wicket duo cashed in on England’s failure to bowl to increasingly unorthodox fields.
South Africa had earlier dismissed England for just 165, with fast bowler Kagiso Rabada taking 5-52 – his 12th five-wicket haul in a Test innings.
Watch: Rabada’s five-wicket haul at Lord’s
Ollie Pope’s 73 was the only double-figure score by a specialist England batsman, with all-rounder Stokes’ 20 the next-best contribution.
Thursday’s largely sunny conditions undoubtedly made batting easier than it had been on Wednesday’s rain-shortened first day.
But Proteas captain Dean Elgar and fellow left-hander Erwee still showed plenty of application while also scoring briskly against an England attack that lacked both the pace and accuracy of the Proteas’ four quicks.
Elgar, dropped on seven by Zak Crawley in the slips, was then largely untroubled until, having made 47, he fell in freak fashion when a ball from 40-year-old England great James Anderson deflected off his thigh guard and forearm before trickling on to the stumps.
The 32-year-old Erwee reached just his second fifty in his short Test career when he struck Stuart Broad through the covers for a sixth four in 89 balls faced.
Aiden Markram hit three stylish fours in his 16 before he was caught behind off Jack Leach – the first spinner used by either side this match.
South Africa were still well placed when Stokes took two wickets for five runs in seven balls en route to stumps figures of 3-53 in 12 overs.
He dismissed the resolute Erwee when a superb bouncer from around the wicket lifted off a good length to take the glove before lobbing gently to wicketkeeper Ben Foakes.
Stokes, battling a longstanding knee problem, then had Van der Dussen plumb lbw for 19 with a ball that jagged back.
Stuart Broad then took his 100th Test wicket at Lord’s when Kyle Verreynne (11) edged behind to opposing gloveman Foakes.
Maharaj, however, dismissively pulled Anderson for four and Jansen hooked Stokes for six over long leg. And by the time Maharaj holed out off Stokes he had hit seven fours in 49 balls.
England resumed Thursday on 116-6, with Pope 61* before Rabada wrapped up the innings, having sparked an initial collapse by removing openers Alex Lees and Crawley cheaply on Wednesday.
England have won all four of their Tests under a new leadership pairing of Stokes and coach Brendon McCullum after adopting a policy of all-out attack.
But the approach was found wanting against a quality attack that has helped South Africa climb to the top of the World Test Championship table.
Pope should have been out for 67 when he edged Rabada to first slip, only for Erwee to floor a routine chance despite four juggled attempts to keep hold of the ball.
Rabada, however, had Pope chopping on to a full-length ball to end a 102-ball innings, with England 134-7.
And he showed there was more to his game than sheer speed when he undid Broad (15) with a clever slower ball the tailender spooned to Elgar at point.
Rabada ended the innings when he had Anderson lbw for a duck.
Photo: Gareth Copley/Getty Images