Prosper Utseya became just the second Zimbabwean to take a hat-trick in a one-day international as South Africa were bowled out for 231 on Friday.
Utseya sparked a remarkable collapse as he claimed the wickets of Quinton de Kock, Rilee Rossouw and David Miller from consecutive deliveries before finishing with career-best figures of 5 for 36.
South Africa had been cruising at 142 without loss in the 25th over when the off spinner turned the innings on its head, with Hashim Amla the first to go when he was stumped for 66 off Utseya's bowling.
De Kock departed for 76 in Utseya's next over before Rossouw and Miller both fell first ball, sparking wild celebrations as the 29-year-old Utseya joined Eddo Brandes on the list of Zimbabweans with an ODI hat-trick.
When JP Duminy was trapped lbw by Utseya in the 31st over of the innings, South Africa had lost five wickets for 13 runs in 39 balls, with Utseya making the most of the considerable turn on offer by taking all five.
Fellow off spinner John Nyumbu got in on the act thereafter, dismissing Faf du Plessis, Ryan McLaren and Dale Steyn, but a 36-run stand for the last wicket between Aaron Phangiso and Imran Tahir carried the Proteas to a more respectable total.
Zimbabwe's highest score in a three-match ODI series against South Africa last week was 216.