A late collapse from Bangladesh allowed Zimbabwe to claim a six-run victory in the first of two Twenty20 internationals in Bulawayo.
Chasing 169, the tourists were well set at 120-1 in the 15th over with Shakib Al Hasan (65) and Shamsur Rahman (53) in dominant form, but Zimbabwe battled back to limit the final total to 162-8.
Bangladesh were still in the box seat as they needed just 10 runs from the final over but lost the crucial wicket of outgoing captain Mushfiqur Rahim off the first ball.
Mushfiqur had put his stuttering side back on track with 28 off 13 deliveries but the 24-year-old could not finish the job as he picked out Sean Williams on the deep square leg boundary while looking for his third six.
After that Sohag Gazi (2 not out) and new batsman Abdur Razzak could only manage three runs off the next four deliveries before Tinashe Panyangara (3-32) sealed victory for Zimbabwe by trapping Razzak (2) lbw off the final ball of the match.
Bangladesh will be left to rue a missed opportunity following an impressive 118-run stand for the second wicket between Shakib and Shamsur.
The loss of both in the same Prosper Utseya (2-34) over hit the tourists badly though, and they could not recover as they lost seven wickets for the addition of just 38 runs.
Zimbabwe had earlier made 168-8 after winning the toss and opting to bat, with opener Hamilton Masakadza top-scoring with 59 off 48 balls while sharing in a 74-run stand for the second wicket with skipper Brendan Taylor, who clubbed 40 off 26 balls.
Shakib was the pick of the Bangladesh attack, dismissing both Masakadza and Taylor as he claimed 2-20 off his four overs, but the all-rounder ended on the losing side despite impressing with both bat and ball.