Hamilton Masakadza's determined 111 not out went in vain as Bangladesh wrapped up only their fourth Test win on Monday to earn a share of a two-match series with Zimbabwe.
Masakadza held off the Bangladesh attack for more than six hours but lacked support at the other end, allowing the tourists to bowl Zimbabwe out for 257 and complete a 143-run victory at Harare Sports Club.
The home side went into the final day with six wickets intact and a slim chance of scoring the 263 runs still required to chase down a target of 401.
Although Masakadza gave Zimbabwe hope of avoiding defeat after seeing out a wicketless first hour with his younger brother, Shingirai, a double breakthrough quickly put the result beyond doubt.
The Masakadzas had thwarted Bangladesh's bowlers for 119 minutes in total after coming together on the fourth evening but they were parted when Shingirai was trapped lbw by Mohammad Ashraful for 24.
With Elton Chigumbura soon falling lbw to Sohag Gazi and Ziaur Rahman claiming the wickets of Richmond Mutumbami and Graeme Cremer after lunch, the match only stretched into the second half of the day because of Masakadza, who went to his century with a huge hit over midwicket for six.
When Shakib Al Hasan trapped Kyle Jarvis lbw, Masakadza had run out of partners and Bangladesh had their fourth Test win from 79 matches -- and their first ever in Zimbabwe and first Test win since 2009.
"After such a huge defeat in the first Test the boys have come back well," said Bangladesh captain Mushfiqur Rahim.
"We were under big pressure because when we play against Ireland and Zimbabwe we are expected to win every match at home or abroad."
Zimbabwe were left to lament a number of soft dismissals from the batsmen and dropped catches in the field over the course of the five days.
"We haven't helped ourselves this match and Bangladesh have come back strongly and were deserved winners in the end," said captain Brendan Taylor.
"We had too many bad sessions and Bangladesh probably won two-thirds of the match. They adapted quickly to the conditions and they made us pay."
Mushfiqur was named man of the match for his 60 and 93, which both came after top-order collapses, while Bangladesh seamer Robiul Islam was man of the series after picking up 15 wickets over the two matches.