After not bowling in the first innings, Keshav Maharaj picked up a five-for in the second innings as South Africa sealed an innings and 120-run win in the one-off Test.
Andile Phelukwayo had match figures of 5 for 25 in only his second Test for South Africa.
Brendan Taylor scored 16 off 36 balls in a solid 21-run partnership with Ervine.
Craig Ervine was the top scorer for Zimbabwe in the second innings with 23 off 84 balls.
Kagiso Rabada's services were barely required as he and Vernon Philander picked up a wicket each.
Morne Morkel, taking 5 for 21, made quick work of Zimbabwe as the latter were bowled out for 68 and asked to follow on.