Zimbabwe's Brendan Taylor fought valiantly with his second century of the Test but Bangladesh won the final match by 218 runs to end the series at 1-1 on Thursday.
Needing a mammoth 443 to win, Zimbabwe were bowled out for 224 in the second session on the fifth day in Dhaka with Taylor remaining unbeaten on 106.
Taylor's knock of patience and controlled aggression came from 167 balls and featured ten fours. He had hit 110 in Zimbabwe's first essay of 304.
Off-spinner Mehidy Hasan was the wrecker-in-chief on the final day as he returned bowling figures of 5-38 -- his fifth five-wicket haul in Tests.
Mehidy denied Zimbabwe any chance of repeating their clinical performance of the first match that they won by 151 runs in Sylhet.
Taijul Islam added two more wickets to his five in the first innings and finished the series with a career-best haul of 18 scalps in two matches. He was named the player of the series.
The home side declared the first innings on 522 for seven with Mushfiqur Rahim hitting an unbeaten 219 -- the first time a wicketkeeper hit two double tons in Test cricket.
The visitors' hopes of securing a draw rested on the pairing of Taylor and Peter Moor, whose 139-run sixth wicket stand in the first innings took the visitors past the 300 mark.
But once Moor departed after a 79-ball vigil for a paltry 13 runs, smartly caught at short leg by Imrul off Mehidy, the Zimbabwe batting fell flat.
Mahmudullah Riyad, who stood in for regular captain Shakib Al Hasan, hailed his team's fighting spirit.
"I think the boys were determined enough and showed their character. They stuck to their task. (On the top order) We are working hard and you may not see the results on the pitch yet," he said.
- 'Good runs' -
"With Mushy (Mushfiqur) and Mominul (Haque), we built up the partnership, and they gave us some good runs in the first innings. Taijul was brilliant with the ball," Mahmudullah added.
Mominul Haque made 161 in the first innings.
Resuming the fifth and final day at 76 for 2, Zimbabwe lost another key man Sean Williams for 13 after pace bowler Mustafizur Rahman provided Bangladesh with the day's first breakthrough.
Spinner Taijul dismissed Sikandar Raza for 12 by taking a sharp return catch to reduce Zimbabwe to 120 for 4.
But Taylor and Moor saw their side through to the lunch break with an unbeaten 41-run stand for the fifth wicket.
Despite the defeat, captain Hamilton Masakdza praised his team,
"We knew Bangladesh would come hard at us...but I thought the boys showed character, especially after going so far behind in the first innings," he said.
"World-class from Brendan. We have always known how good he is. Also really impressed with the way Sean Willams played for us throughout the series. Also, the seamers took wickets early, which is never easy in the subcontinent," he said.
Bangladesh declared their second innings on 224 for six at the tea break Wednesday after Mahmudullah completed his second century in eight years.
The victory was Bangladesh's first this year and it came after eight innings in which the Test minnows could not cross the 200 run mark.
Bangladesh will play next play a two-Test series at home against the West Indies. The first Test begins in Chittagong on November 22 and the second Test will be held in Dhaka on 30-December 4.