A five-wicket haul from spinner Taijul Islam helped the Tigers restrict the visitors to 181 in the second innings, leading to a target of 321.
Openers Liton Das and Imrul Kayes then saw out the fourth innings to the end of play on the third day.
Bangladesh will have to put up a record-making chase in the fourth innings to beat the visitors.
Spinner Taijul Islam was the most successful of the Tigers' bowling attack, picking up a total of 11 wickets in the two innings.
Spinners Mehidy Hasan Miraz and Nazmul Islam also found success, taking three and two wickets respectively in the second innings.
Captain Hamilton Masakadza was the best of the Zimbabwean batsmen, scoring 48.
The third day’s play began at the Sylhet International Cricket Stadium on Monday morning.
After the second day, Zimbabwe had a lead of 140 runs.
But Taijul, who was coming off a six-wicket haul during the first Zimbabwean innings, said it was possible to restrict the visitors to a manageable total.
Scorecard
Zimbabwe 1st Innings: 282
Bangladesh 1st Innings: 143 (Liton 9, Imrul 5, Mominul 11, Shanto, 5, Mahmudullah 0, Mushfiqur 31, Ariful 41*, Miraz 21, Taijul 8, Apu, 4, Abu Jayed 0)
Zimbabwe 2nd Innings: 181
Zimbabwe lead by 320 runs