Brendan Taylor struck 93 to leave Zimbabwe on 248-9 at the end of play on the first day of the one-off Test against South Africa.
Having resumed on 165-5 in Harare, Taylor's tally from 159 balls and Hamilton Masakadza's earlier 45 in 93 ensured that the hosts would bat when play resumes tomorrow.
Zimbabwe's captain fell just short of a century, however, being caught out by JP Duminy.
Richmond Mutumbani racked up 21 runs, while Tinashe Panyangara added 12 more to take Zimbabwe past 200 overall, before falling to Dale Steyn and Vernon Philander respectively.
Steyn also sent Tendai Chatara [23] back to the pavilion, meaning that Donald Tiripano and debutant spinner John Nyumbu will take to the crease tomorrow morning.