The hosts’ skipper Elton Chigumbura hit an unbeaten half century to help his side to a successful 210-run chase.
Australia won the toss and chose to bat as Michael Clarke returned to action.
It was just as well Clarke was back as the skipper top scored in a paltry effort in which the Zimbabwean spinners did the job of taking six of the nine wickets to fall.
The hamstring injury that’s kept Clarke out of action recurred with him on 68 not out and he retired hurt in the 43rd over, only to return in the last over of his side’s innings.
The Aussies were reeling at 5-95 before Clarke and Brad Haddin combined to add 50 for the sixth wicket.
Clarke has now been ruled out of the series and going home, with George Bailey taking over as skipper.
In the chase, Chigumbura too came out to bat with his side on struggle street at 5-106, before he hit 52 off 68 balls to lead Zimbabwe to victory.
The last time Zimbabwe beat Australia it was the African nation’s first ever 50-over match, and since then the Aussies have won the World Cup four times – their last ODI series ended in a 2-2 draw with lowly Afghanistan.
It was a massive turnaround for Zimbabwe after they were beaten by a whopping 198 runs in their first meeting of the series, also involving South Africa.
Image via Getty