A century from Hashim Amla helped South Africa set Zimbabwe a target of 310 to win the first one-day international at Bulawayo.
Amla reached 100 off just 120 balls, and ended his innings on 122 not out after hitting two huge sixes off consecutive balls in the 47th over.
Quinton de Kock [63] and Faf du Plessis [59] provided the support before falling to John Nyumbu and Prosper Utseya respectively.
AB de Villiers made 21 off 12 balls before being caught by Sean Williams off Nyumbu late on.