South Africa took a firm grip on the Test match against Zimbabwe on day three in Harare.
The Proteas were eventually bowled out for 397 in their first innings before reducing Zimbabwe to 28-1 at the close, leaving the tourists with a lead of 113.
South Africa resumed on 201-4 with Faf du Plessis and Quinton de Kock at the crease having made slow progress on day two.
The pair continued to take the game away from Zimbabwe but Du Plessis' patience was not rewarded with a century, the batsman falling for 98 to bring the 119-run partnership to an end.
It was impressive debutant John Nyumbu who claimed his third wicket of the innings, drawing Du Plessis into an edge to backward short leg.
De Kock did not last much longer, falling for 81, and Sean Williams claimed a second wicket in succession by bowling Vernon Philander for 17 to reduce South Africa to 334-7.
JP Duminy was beginning to run out of partners and it was he who was the last man out for 55.
An attempted reverse sweep fell nicely for Brendan Taylor at slip to give Nyumbu figures of a five-wicket haul in his first Test.
Zimbabwe knew they were up against it as they began their second innings 141 runs adrift, but they were going along nicely until Hamilton Masakadza fell.
Masakadza had scored 19 of the hosts' 25 runs but could only fend off a Morne Morkel bouncer to AB de Villiers at slip.
Fellow opener Vusi Sibanda ended the day unbeaten on eight, while nightwatchman Donald Tiripano managed just a single from his first 19 balls.