Openers Vusi Sibanda and Hamilton Masakadza hit half-centuries as Zimbabwe scored a shock 29-run victory over South Africa in Harare.
In the second game of the tri-nations T20 series, Zimbabwe made 176-4 with Sibanda and Masakadza putting on 114 of those.
Chris Mpofu and Graeme Cremer then took three wickets apiece as South Africa were dismissed for 147 in the final over.
Masakadza made 55 off 54 balls with five fours and a six before Robin Petersen had him caught by Colin Ingram.
Sibanda followed two overs later with the score on 128, caught by Lonwabo Tsotsobe off Wayne Parnell having hit four boundaries and two sixes.
Captain Brendan Taylor kept up the momentum, thrashing 38 from just 21 deliveries before succumbing to Marchant de Lange in the last over.
South Africa's reply started well, despite the loss of Hashim Amla for 20, and they looked comfortable at 74-1 in the ninth over.
But they lost Richard Levi for 40 before Cremer took centre stage by dismissing Justin Ontong (four), Dane Vilas (nought) and JP Duminy (six) to leave South Africa on 91-5.
Ingram top-scored with 48, but with numbers four to 11 contributing just 40 in total, Zimbabwe closed out victory with room to spare.
The win means Zimbabwe are unbeaten after they won the first match of the series against Bangladesh.