Bangladesh battled back into contention on the third day of the first Test with Zimbabwe, trailing by 294 runs as bad light ended play.
The tourist had been in complete control heading into Monday's action, leading by 139 after both sides had batted once, and Zimbabwe stretched that advantage as its second innings reached 101-2 shortly after lunch.
Captain Hamilton Masakadza's dismissal for 48 hurt Zimbabwe, though, and it was ultimately bowled out for 181 following a post-tea collapse.
Aided by Taijul Islam's five-for, Bangladesh was given more than two days to chase a target of 321 and some gritty early work from Liton Das (14) and Imrul Kayes (12) ensured it reached stumps without loss on 26-0.
Masakadza dismissal triggers collpase
Masakadza was central to Zimbabwe's early partnerships in the second innings and a third-wicket stand of 54 with Sean Williams (20) had the visitor in a commanding position heading into the afternoon session.
Mehidy Hasan Miraz trapped Masakadza lbw and the innings started to fall apart, Taijul (5-62) finding his feet to remove Williams and Peter Moor in consecutive balls in the 43rd over.
He had soon taken the wicket of Sikandar Raza (25), too, and a partnership of 35 between Regis Chakabva (20) and Wellington Masakadza (17) only stemmed the tide for a short while, Taijul bringing the innings to a close as Tendai Chatara was dismissed leg before.
There is work still for Bangladesh to do in the final two days, but Taijul's work to check Zimbabwe's progress means Das and Kayes will resume on Tuesday with a realistic target.