Faf du Plessis fell two runs short of a fourth test century as South Africa eased past Zimbabwe's first innings total by reaching 278 for five at lunch on the third day of the one-off match at Harare Sports Club on Monday.
His dismissal brought an end to a fifth-wicket stand of 119 with wicketkeeper Quinton de Kock (75 not out) that lifted the Proteas out of a hole after they slipped to 157-4 following the tea interval on the second day in response to Zimbabwe's 256.
De Kock and JP Duminy (yet to score) will look to extend the 22-run advantage in the afternoon session on a wicket that remains difficult to score on.
After battling for runs on day two with the pitch slow and lacking in bounce, it was another ponderous start to the morning from the South Africans as they resumed on 201-4, but sparked into life in the hour before lunch.
De Kock was the more adventurous of the pair and brought up his maiden test half-century with a huge six back past Nyumbu, taking exactly 100 balls to reach the milestone.
Image: Faf du Plessis
Photograph: Duif du Toit/Gallo Images/Getty Images
Cricket Buzz: Indian govt grants $1m for Afghanistan stadium
Wretched form in England exposes India's batting woes
South Africa escape with a draw to reclaim No. 1 Test ranking
Israel hopes India's UN vote decision won't impact ties
South Africa lose Petersen in steep run chase