Shakib Al Hasan put in an all-round performance, but his dismissal kickstarted a dramatic Bangladesh collapse that saw Zimbabwe snatch a six-run victory in the first Twenty20 international at Queens Sports Club.
Shakib's 2 for 20 with the ball had restricted Zimbabwe to 168 for five, but his 65 from 40 deliveries failed to bring a morale-boosting win when Bangladesh lost five wickets for 23 runs in 19 deliveries.
Although captain Mushfiqur Rahim's 28-run blitz threatened to take his side over the line, he fell to the first ball of the final over and Bangladesh finished on 162 for eight.
"We panicked in the end there and unfortunately we came up short," coach Shane Jurgensen said. "At the start of the game we thought 160 or 170 was a par score and the batters did a good job of getting a good start, but unfortunately we couldn't finish it off."
Hamilton Masakadza's free-flowing half-century had anchored Zimbabwe's innings, which also enjoyed contributions from Brendan Taylor at the top of the innings and Malcolm Waller at the end.
Masakadza hit 59 from 48 balls and was well supported by Taylor in a 74-run stand for the second wicket, which ended when the captain holed out for 40.
Although Masakadza stepped up his own scoring rate after Taylor's departure a strong finish was required, which Waller provided when he hit the final ball of the innings for six to finish on 26 not out from 14 deliveries.
Zimbabwe's total did not look as if it would be enough when Shakib put on 118 for the second wicket with Shamsur Rahman, who made 53 in his first match of the tour.
However Prosper Utseya changed the game when he got rid of both batsmen in the same over, before two run-outs in quick succession gave Bangladesh a familiar sinking feeling.
"We've always felt against Bangladesh that it doesn't take much to put them down," Masakadza said afterwards.
Bangladesh will have an immediate opportunity to atone for their errors on Sunday, when the teams return to the same venue for the second and final Twenty20 international.