Abdur Razzak's fine recent form continued as Bangladesh claimed a 65-run win over Zimbabwe in the third one-day international.
Razzak, fresh from taking a hat-trick in the second game of the series, finished with figures of 4-14 as Zimbabwe were skittled for 181 in pursuit of a victory target of 247 in Dhaka.
The Tigers were sent into bat and made a nervous start to their innings, slipping to 5-2 in the fourth over.
Tamim Iqbal was lbw to Christopher Mpofu for a six-ball duck and Junaid Siddique (1) soon followed, brilliantly caught one handed by a diving Prosper Utseya at square-leg off Shingirai Masakadza's bowling.
Imrul Kayes (33) and Raqibul Hassan (12) steadied the ship with a 42-run stand for the third wicket but when both departed in quick succession to Utseya's off-spin, Bangladesh were back in trouble at 71-4.
However, Shakib Al Hasan and Mushfiqur Rahim combined for a fourth-wicket partnership of 116 to repair the damage.
Shakib made 73 off 91 balls, his 17th ODI half-century, while Mushfiqur contributed 63 from 73 deliveries, the seventh time he has passed 50 in the format.
Utseya (4-38) removed both inside the final 10 overs as Bangladesh looked to up the scoring rate.
Zimbabwe's run chase got off to an awful start, Razzak accounting for four of the top six - only Brendan Taylor (15) made double figures - as the tourists slumped to 47-6 inside 19 overs.
Captain Utseya, batting at number seven, continued his fine personal match with a defiant 67 but it was merely delaying the inevitable.
Paceman Shafiul Islam cleaned up the tail for figures of 4-43 as the hosts sealed the result from the first ball of the penultimate over.
Bangladesh hold a 2-1 lead in the five-match series, which continues on December 10 in Chittagong.