Bangladesh are zeroing in on levelling the Test series with Zimbabwe after reducing the visitors to 2-76 at stumps on the fourth day.
Zimbabwe still need 367 runs or to survive a full day to win their first Test series since 2011 after the hosts set an improbable target of 443 runs.
Bangladesh skipper Mahmudullah was instrumental in leaving Zimbabwe a record chase, hitting his second century as the hosts declared the second innings on 6-224.
Mahmudullah, who completed his century in the last ball before the tea session, was not out on 101 and shared two important partnerships to take the side on the verge of winning the Test and drawing the series.
Bangladesh lost the first test by 151 runs.
Despite a lead of 218 runs, dismissing Zimbabwe for 304 in its first innings on day three, Bangladesh decided not to enforce the follow-on. But Zimbabwe fast bowlers Kyle Jarvis (2-27) and Donald Tiripano (2-31) rocked the top order to leave the hosts at 4-25.
But Mahmudullah resisted further damage to keep the side on course for a sizeable lead.
Zimbabwe's highest successful chase in the fourth innings is 162 against Pakistan in Peshawar in 1998.
The tourists made a decent start with skipper Hamilton Masakadza and Brian Chari sharing 68 runs.
Hasan (1-16) gave Bangladesh the first breakthrough after Masakadza spooned a catch at short-leg for 25.
Two overs later, left-arm spinner Taijul Islam (1-34) dismissed Brian Chari (43), who tried to paddle sweep against a turning delivery. Chari reviewed in vain.
