South Africa 309 for 9 dec (Markram 125, de Villiers 53, Jarvis 3-57, Mpofu 3-58) beat Zimbabwe 68 (Morkel 5-21) and 121 (Maharaj 5-59, Phehlukwayo 3-13) by an innings and 120 runs
Port Elizabeth: Aiden Markram composed an impressive hundred, while Morne Morkel and Keshwa Maharaj bagged five-wicket hauls to power the home side to a crushing innings and 120-run win in pick-ball Test match at St George's Park, Port Elizabeth on Wednesday.
Zimbabwe were forced to follow on after being bowled out for 68 before tea break on the second day. Trailing by 241 runs on the first innings.
Morkel was the main destroyer in Zimbabwe's first innings, taking five for 21. Kagiso Rabada and Andile Phehlukwayo took two wickets each.
South Africa needed just 68 minutes and 14.1 overs on Wednesday to take the remaining six wickets after Zimbabwe resumed on 30 for four.
Nightwatchman Kyle Jarvis was the top score for Zimbabwe, making 23.
With a lead of 241 and just one hour played in the day, South Africa's only consideration was whether they wanted some batting practice ahead of the Indian series.
The tourists looked set for another battle when Morkel hit Hamilton Masakadza on the right elbow and the opener was forced to retire hurt with Zimbabwe on eight without loss.
Although they looked to have found their feet when Chamu Chibhabha, Craig Ervine and Brendan Taylor all got in to take Zimbabwe to 75 for one, Zimbabwe then lost 8 for 28 to lose before the dinner break.
This time it was Keshav Maharaj doing the damage, taking 5 for 59 to finish 2017 with 48 wickets - the most by a South African spinner in a calendar year.
Phehlukwayo also impressed as his seam-up proved effective on a wicket that often did just enough to find the edge, as he took 3 for 13.