Earlier, Having 282 runs in the first innings, Bangladesh resumed their second innings on the fourth day with overnight score of 26 for no loss in 10.1 overs.
Overnight opening stand between Liton Kumar Das [23 off 75b; 3×4] and Imrul Kayes carried the team total to 56 off 23 overs before Liton was lbw by Sikandar Raza.
Imrul Kayes was the big hitter in the first session scoring 43 off 103 balls, including six boundaries, before being bowled out by Sikandar Raza on 83/3 in 36.5 overs.
Skipper Mahmudullah Riyad [16 off 45b] was another batsman could reach to double digit.
Sikandar Raza got three wickets while Brandon Mavuta and Kyle Jarvis took one wicket each.
It is only their third overseas Test win and first since November 2001, when the world of cricket was considerably different.
Zimbabwe 1st innings: 282/10 in 117.3 overs; Sean Williams 88, Peter Moor 63*, Hamilton Masakadza 52, Taijul Islam 6/108, Nazmul Islam2/49, Mahmudullah Riyad 1/3, Abu Jayed 1/68.
Zimbabwe 2nd innings: 181/10 in 65.4 overs (overnight 1/0 in 2 overs); Hamilton Masakadza 48, Sikandar Raza 25, Brendan Taylor 24, Sean Williams 20, Regis Chakabva 20, Taijul Islam 5/62, Mehidy Hasan Miraz 3/48, Nazmul Islam 2/27.
Bangladesh 1st innings: 143/10 in 51 overs; Ariful Haque 41*, Mushfiqur Rahim 31, Mehidy Hasan Miraz 21, Mominul Haque 11, TendaiChatara 3/19, Sikandar Raza 3/35, Kyle Jarvis 2/28, Sean Williams 1/5.