Chasing 272, Bangladesh made a promising start through Tanzid Hasan, who struck 46 off 38 balls with nine fours and a six. He added 47 runs with Soumya Sarkar for the opening wicket before Soumya fell for nine.
Tanzid’s dismissal at 66 was followed by Najmul Hossain Shanto’s departure for four just two balls later, leaving Bangladesh at 68 for three.
Saif Hassan and stand-in captain Towhid Hridoy attempted to steady the innings, adding 29 runs for the fourth wicket. However, Hridoy fell for 13, and the hosts continued to lose wickets at regular intervals.
Saif scored 26 off 37 balls before becoming Wellington Masakadza’s second victim. Masakadza also dismissed Mosaddek Hossain for 11, while Nurul Hasan managed only five.
Rishad Hossain offered some resistance with 23 off 33 balls, but Zimbabwe captain Sikandar Raza removed both Rishad and Hridoy to tighten his side’s grip on the match.
Brad Evans then wrapped up the tail, claiming four wickets for 45 runs. He dismissed Shoriful Islam for a duck before removing Mustafizur Rahman for six to seal Zimbabwe’s victory.
Earlier, Zimbabwe recovered from a disastrous start to post 271 for eight after electing to bat first. Taskin Ahmed struck three times in the opening seven overs, reducing the visitors to 24 for three.
Brendan Taylor and Craig Ervine led the recovery with a 150-run fourth-wicket partnership. Taylor scored 81 off 101 balls, while Ervine narrowly missed a century, making 93 off 106 deliveries.
Saif Hassan took two wickets, while Shoriful Islam also claimed two as Zimbabwe lost momentum towards the end. However, unbeaten contributions of 21 each from Newman Nyamhuri and Wellington Masakadza helped them finish with a competitive total.
Taskin returned figures of three for 44, while Saif conceded just 17 runs in his three overs to take two wickets.
The defeat gives Bangladesh a disappointing start to the tri-series, with their next match against Afghanistan scheduled for October 21.