Bangladesh opted to bowl first and Mohammad Saifuddin provided them their first breakthrough with the wicket of Hamilton Masakadza.
Cephas Zhuwao and Taylor put on 52 runs for the second wicket, allowing for a atypical resistance by Zimbabwe in the middle overs.
Brendan Taylor announced his return to form with a sublime 75 off 73 balls. He was trapped LBW by Mahmudullah but his wicket in the 38th over robbed Zimbabwe of some much-needed momentum in the end overs.
Sikandar Raza hit a quick 49 off 61 balls to lift Bangladesh to 247/7 in 50 overs.
Imrul Kayes and Liton Das put on 148 runs for the first wicket and set the ball rolling.
Both Liton (83) and Kayes (90) fell to Sikandar Raza but the massive opening stand left Bangladesh on the brink of a series win.
Fazle Mahmud recorded his second duck in two ODI games, giving Zimbabwe a small window of opportunity.
Mushfiqur Rahim stepped up with 40 off 52 balls and steered Bangladesh to a 7-wicket win with 5.5 overs to spare. This was Bangladesh's 11th consecutive win over Zimbabwe.