TamimIqbal hit 61 and RubelHossain took 4-31 on Friday as Bangladesh salvaged some pride from its disappointing tour of Zimbabwe with a six-wicket win in the fourth one-day international.
Zimbabwe still has an unassailable 3-1 lead in the five-match series. The last ODI is on Sunday.
Hussain's second four-wicket haul in the series earned him the man-of-the-match award at Queens Sports Club.
He bowled with bowled with impressive control on a pitch suited for batting, removing Brendan Taylor (106), Elton Chigumbura (31), Malcolm Waller (12), and Ray Price (0).
Bangladesh captain Shakib Al Hasan was delighted with his team's performance.
"The bowlers bowled well," Al Hasan said. "The wicket helped us with the spinners and kept them at a reasonable total.
"We felt we were not positive enough batting (in previous matches). We needed the top order to play some good shots. That's what they did today."
In pursuit, Iqbal and ImrulKayes (28) ensured Bangladesh made a flyer, putting on 46 runs before Kayes was well caught by Hamilton Masakadza off pace bowler Chris Mpofu.
Price trapped Iqbal in front to end a commanding innings, Kyle Jarvis took a superb catch in the deep off Prosper Utseya to remove JunaidSiddique (14) before dismissing MushfiqurRahim on 16.
Captain Shakib Al Hasan (39 not out) and ShuvagatoHom (35 not out) took advantage of Zimbabwe's stray bowling to guide the Asian side home.
Earlier, Taylor's third ODI hundred featured seven boundaries and a six and rescued the Zimbabwe innings from 89-4 in the 22nd over.
Taylor shared a stabilising fifth-wicket stand of 94 runs with Chigumbura to briefly give Zimbabwe hope of a defendable total.
Zimbabwe, however, collapsed following the departure of Chigumbura, who was caught in the deep by NasirHossain off RubelHossain trying to take the attack to the bowlers.
Taylor was out when he mis-hitRubelHossain to be caught by Mahmudullah at mid off.
"It was a good wicket to bat on," Taylor said. "We kept losing wickets at crucial stages. It kept us on the backfoot.
"We expected Bangladesh to come back strongly today. We were not good enough today. Winning 3-2 does not come out as good as 4-1. We need to look at ourselves in the mirror and come back with a better performance on Sunday."