Zimbabwe needed a bowl-off to beat Canada after the two sides tied in their quadrangular series game in King City.
Zimbabwe took it 3-1 after Harvir Baidwan, Sunil Dhaniram and Abdool Samad all missed for Canada, sparing the Africans' blushes.
But the hosts really should have won the game before that drama, as Zimbabwe needed a misfield from Dean Abzal on the boundary to get them level with Canada's total of 135 for seven.
Zimbabwe were comfortable in their chase until Rizwan Cheema took two wickets in an over to leave them struggling on 34 for three, which became 61 for five.
Wicketkeeper Tatenda Taibu and Elton Chigumbura then staged a 53-run partnership.
But Uganda-born seamer Henry Osinde removed Chigumbura (30 off 19 balls) and held catches in the deep to remove Timycen Maruma and Taibu (37 off 40) from the first two balls of the final over, bowled by Baidwan.
Azbal misfielded with Zimbabwe needing six to win off two balls and Prosper Utseya scrambled a leg bye off the final ball to ensure they finished level with one wicket remaining.
Earlier, Canada's innings had got off to a terrible start when Chigumbura bowled wicketkeeper Ashif Mulla with the first ball of the game, and the hosts lost regular wickets thereafter.
Four Canada batsmen, Cheema, Mohammad Iqbal, Karun Jethi and Balaji Rao, passed 20, but none could go on.
Utseya's off-spin proved particularly effective as the Zimbabwe captain returned figures of one for 12 off his four overs.