Zimbabwe's seamers struck early in Bangladesh's second innings but couldn't stop the hosts' lead soaring to 296 runs in the second Test in Dhaka on Wednesday.
Bangladesh, who opted against enforcing the follow-on despite their 218-run first innings lead, reached 78 for four at lunch on the fourth day.
Debutant Mohammad Mithun was batting on 34 alongside skipper Mahmudullah Riyad, who was 24 not out at the break.
The pair added 53 runs in their unbroken fifth-wicket stand after two wickets each from Kyle Jarvis and Donald Tiripano reduced Bangladesh to 25-4.
Zimbabwe were all out for 304 earlier on the third day, replying to Bangladesh's mammoth first innings total of 522-7 declared.
Jarvis then rattled Bangladesh when he removed openers Imrul Kayes and Liton Das in the space of three balls in the fifth over.
Imrul, who made only three, was the first man to go as he slashed a short ball wide outside the off-stump to Brendon Mavuta at deep point for a simple catch.
Two balls later Liton was bowled for six runs to leave Bangladesh reeling at 10-2.
First-innings centurion Mominul Haque quickly followed the openers when he edged a catch off Tiripano to wicketkeeper Regis Chakabva for one in the next over.
Bangladesh sensed trouble once Mushfiqur Rahim, who scored 219 in the first innings, pulled a straight catch to square leg fielder Mavuta to depart for only seven runs.
But Mithun and Mahmudullah prevented further damage, slowly building their partnership to take Bangladesh's lead close to 300 runs.
Bangladesh need a win to square the series after going down by 151 runs in the first Test in Sylhet.