Zimbabwe passed their target of 147 with 17 balls remaining, making 150 for one, as Taylor was unbeaten on 59 and Masakadza 58 not out.
They could also thank their bowlers as Kyle Jarvis took two for 22, including opener Richard Levi for a first-ball duck as South Africa got into early trouble, reduced to six for two in the second over.
Hashim Amla followed Levi for three, and although Faf du Plessis made 66 off 57 balls to hold the Proteas innings together, few others provided support.
Albie Morkel made an unbeaten 34 but Colin Ingram (19) and Wayne Parnell (12) were the only others in double figures as South Africa closed their innings on 146 for six.
Zimbabwe quickly set about chasing that down, and although they lost Vusi Sibanda for 23 off 15 balls with the score on 32, they encountered little resistance from the South Africa attack.
Taylor's 59 came off 41 with one six, while Masakadza had two maximums in his 58 off 50 balls.