Steven Finn led a persistent England bowling attack as South Africa failed to capitalise on a promising start on the first day of the third Test at the Wanderers Stadium on Thursday. (Scorecard)
South Africa were 267 for seven at the close, a disappointing return after reaching 117 for one at the mid-afternoon drinks break.
Having negotiated what could reasonably have been expected to be the trickiest part of the day - after winning the toss and batting in cloudy conditions on a pitch with pace and bounce - wickets fell at regular intervals.
South Africa slipped to 225 for seven before Chris Morris and Kagiso Rabada took them to the close with an unbeaten partnership of 42.
Eight of the nine batsmen in action reached 20, with Faf du Plessis scoring 16, but Dean Elgar's 46 was the highest score.
Elgar's dismissal, pushing at an off-spinner from Moeen Ali to be caught behind by Jonny Bairstow, started a slide. It ended a second wicket partnership of 73 with Hashim Amla, who fell to a superb delivery from Finn shortly afterwards for 40.
The tall Finn was hostile throughout the day, taking the wickets of Amla and Faf du Plessis for a return of two for 50.
Ben Stokes took two for 46, including the key wicket of new captain AB de Villiers, who looked in supreme form before getting a faint edge to an attempted pull shot after making 36.
It was a collective bowling effort, however, with De Villiers the only batsman to look fully comfortable.
While the bowlers exerted pressure throughout the day, several batsmen contributed to their own downfall. Four were out hooking or pulling, while Temba Bavuma was run out, responding slowly after Dane Vilas set off for a quick single.
Van Zyl and Elgar survived some hostile bowling, notably from Finn, as they put on 44 for the first wicket before Ben Stokes came into the attack and struck with his third delivery.
Stokes sent down an innocuous-looking, short delivery which Van Zyl attempted to work to leg, only to get a leading edge which presented an easy catch for Bairstow, who had to jog to a short square leg position to take the offering.
Wicketkeeper Quinton de Kock was ruled out of the South African team after injuring his right knee in an accident at home on Wednesday evening.
Vilas flew from Port Elizabeth on Thursday morning to replace De Kock, arriving at the ground shortly before the first drinks break.
South Africa included a new cap, fast bowler Hardus Viljoen, 26, in a four-man pace attack with part-timer Elgar the only spin bowler in the side.
England named an unchanged team, with opening batsman Alex Hales having recovered from a stomach bug.
De Kock slipped and sprained his right knee at home late on Wednesday, only realising it was serious when he woke up after midnight in pain and with a swollen knee.
England lead the four-match series 1-0.