Mehidy Hasan took five wickets to propel Bangladesh towards a series-leveling, 218-run win in the second Test against Zimbabwe.
The offspinner returned 5/38 to help dismiss Zimbabwe for 224 in the middle of the last day despite a defiant, unbeaten 106 from Brendan Taylor.
Hasan underlined his importance as an allrounder in the absence of Shakib Al Hasan with figures of 8/99 for the match, combined with two unbeaten innings of 64 and 27.
Taylor, who scored 110 in Zimbabwe's first innings, resisted the Bangladesh spinners but didn't get enough support for his lineup to bat through the last day to salvage a draw.
It was Taylor's second pair of centuries in a Test following his 171 and 102 not out in 2013, also against Bangladesh, making him the third Zimbabwe batsman to achieve that after brothers Andy and Grant Flower.
Opener Brian Chari was the other notable contributor for Zimbabwe with 43.
Resuming the day on 76/2 and needing to survive three sessions for a draw to seal their first Test series victory since 2011, Zimbabwe began cautiously with Taylor leading from the front.
Pace bowler Mustafizur Rahman (1/19) got the opening breakthrough in the third over, dismissing Sean Williams (13).
Left-arm spinner Taijul Islam (2/93) continued tormenting Zimbabwe, with his guile and turn to collect the wicket of Sikandar Raza for 12. He finished the series with 18 wickets, including three five-wicket hauls.
Taylor and Peter Moor combined in a patient 66-run partnership to raise hopes of earning a draw, before Hasan fired a quicker delivery and got an inside-edge off Moor, who scored 13 from 79 deliveries.
But the big blow came when Regis Chakabva was run out for 2, exposing the lower order.
Hasan then took less than a half-hour to finish off the innings and the match.
The hosts took a 218-run first-innings lead after dismissing Zimbabwe for 304, then declared again at 224-6 -- after skipper Mahmudullah's first century in eight years -- leaving Zimbabwe in a record chase to win the series.