South Africa’s back-up attack is a worry as they conceded 176 for four after Zimbabwe chose to bat first; and the home attack then sent out a clear warning that spinners and bowlers who take the pace off are still a major threat for the South African batsmen as they bowled them out for 147.
Richard Levi had given South Africa a solid start with his 40 off 28 balls, but his soft dismissal, pulling off-spinner Prosper Utseya to cow-corner, and the decision to move Justin Ontong (4) and Dane Vilas (0) up the order proved costly as the tourists slumped from 73 for one after eight overs to 91 for five just four overs later.
Colin Ingram, who was dropped first ball by Vusi Sibanda, scored a defiant 48 off 39 balls, but when Sibanda caught him at deep mid-off off the bowling of the superb Christopher Mpofu in the 18th over, it was all over for South Africa.
Hashim Amla (11) still looked in prime form as he collected two boundaries off Kyle Jarvis in the second over, but in the next over, he tried to drive Mpofu on the up and could only sky a catch into the hands of the back-pedalling Hamilton Masakadza.
Mpofu had Ingram dropped at square-leg by Sibanda in the fifth over but took a break with excellent figures of one for 14 in three overs.
But Jarvis continued to leak runs at the other end, going for 28 in two, and South Africa were in charge until the introduction of spinners Graeme Cremer and Prosper Utseya.
Utseya removed Levi and Cremer then heaped more pressure on the South Africans by dismissing Ontong – off a cramped drive – and Vilas, who tried to cut a big-turning googly and chopped on, with successive deliveries in the 10th over.
Cremer struck again in his next over with the even bigger scalp of JP Duminy (6). The left-hander also fell to the googly, which Cremer almost turns more than his stock leg-break, and was so far down the pitch that wicketkeeper Brendan Taylor could afford three attempts to complete the stumping!
Ingram and Albie Morkel found ways to score off Cremer, though, as they gave South Africa a chance, taking 15 runs off the leg-spinner in the 14th over, to leave the visitors needing 63 off six overs to win.
Morkel had hit Cremer a long way for six but then found a frustrating way to get out as he bottom-edged a cut at a very wide delivery from Richard Muzhange and was caught behind for 10.
Muzhange was brilliant at the death, taking two for 16 in three overs, but no one bowled better than Mpofu, who finished with three for 20, removing the dangerous Robin Peterson (13) and Ingram in the 18th over.
Cremer finished with three for 29 and Utseya one for 27 in four overs as Zimbabwe pulled off one of their most famous victories.
Half-centuries by both opening batsmen had been the key feature as Zimbabwe posted a fine 176 for four.
South Africa again produced a mediocre bowling display and a messy performance in the field and will have to chase down a testing target on a pitch that is offering turn and grip for the slower balls.
Zimbabwe won the toss and batted and openers Sibanda and Masakadza immediately had the South African bowlers under pressure as they breezed to 38 without loss in five overs.
It just got worse for the visitors as Sibanda and Masakadza reached 50 in the seventh over and raised their century partnership after just 12 overs.
Perhaps one shouldn’t expect miracles just a day after their disappointing first match against Bangladesh, but the South African bowlers once again failed to build pressure, bowling towards the leg-side too often and not stacking up dot balls.
Sibanda and Masakadza eventually added 114 for the first wicket before Masakadza tried to slog-sweep left-arm spinner Peterson, who held the ball back and was rewarded with a catch at cow-corner.
Masakadza, powerful and lethal on the leg side, scored 55 off 39 balls, with five fours and a six.
Sibanda enjoyed himself until the 16th over, hammering four fours and two sixes in his 58 off 50 balls before Parnell had him caught at deep backward point in the 16th over.
The over was an eventful one, also featuring a dropped catch on the boundary by Levi, a four and another wicket when Elton Chigumbura mistimed a pull off the left-arm seamer to be caught off the first ball he faced.
Captain Taylor, dropped by Ontong on the midwicket boundary off Morkel on six, was the star of the closing overs, joining in on the feast as he bashed three fours and two sixes in lashing 38 off 21 balls. His innings ensured Zimbabwe posted a testing target after a very promising start.
Taylor fell to the first ball of the final over when he somehow managed to glove what should have been a free hit at a wretched short ball down leg from Marchant de Lange to wicketkeeper Dane Vilas, who took a good catch diving forward.
Peterson enjoyed bowling on a pitch that suited him, finishing with one for 29 in his four overs, while Morkel (3-0-26-0) and De Lange, in a final over that cost just seven runs, did well when called upon to bowl at the most inconvenient times.