Bangladesh will need to produce a record fourth-innings total to beat Zimbabwe in the first Test after 16 wickets tumbled on the third day on Friday.
Bangladesh, replying to the home team's 389, lost their last five wickets for no run as they were skittled out for 134 before Zimbabwe stretched their huge lead to 442 by reaching the close on 187 for seven.
Paceman Robiul Islam gave the visitors hope by claiming the first six wickets in Zimbabwe's second innings before skipper Brendan Taylor (81 not out) and Graeme Cremer (43) shared a stand of 79.
Earlier, Bangladesh resumed on 95 for one but they could not handle the bounce of a lively Harare Sports Club wicket.
Shingi Masakadza, 26, playing in his second Test, took four for 32 and fellow seamer Kyle Jarvis returned figures of four for 40.
Bangladesh battled their way to 134 for five before their last five batsmen all fell in the space of 20 balls.
"We prepared a seamer-friendly wicket and it worked out for us. As a batter you will always get one that has extra bounce," said Masakadza in a TV interview.
Zimbabwe decided not to enforce the follow-on but Robiul Islam ripped through their top order in a marathon 13-over opening spell as the hosts slumped to 84 for six.
Taylor then steadied the ship, just as he had in the first innings with a patient 171, and Bangladesh will now need to eclipse the world record of 418 that West Indies managed against Australia in 2003.
"We thought about enforcing the follow-on but we didn't want to bat last on that wicket. We just need to keep our discipline in Bangladesh's second innings," Masakadza added.
Zimbabwe first innings 389
Bangladesh first innings (overnight 95-1)
Jahurul Islam lbw Meth 43
Shahriar Nafees c Maruma b Jarvis 29
Mohammad Ashraful c Waller b S. Masakadza 38
Mahmudullah b Meth 3
Shakib Al Hasan c Sibanda b S. Masakadza 5
Mushfiqur Rahim lbw S. Masakadza 3
Nasir Hossain c Mutumbami b Jarvis 7
Sohag Gazi c Waller b S. Masakadza 0
Enamul Haque jnr b Jarvis 0
Rubel Hossain b Jarvis 0
Robiul Islam not out 0
Extras (b-4 lb-1 w-1) 6
Total (all out, 54.1 overs) 134
Fall of wickets: 1-53, 2-102, 3-112, 4-123, 5-124, 6-134, 7-134, 8-134, 9-134.
Bowling: Jarvis 16-8-40-4, Meth 20-6-41-2, S. Masakadza 14.1-4-32-4 (1w), Chigumbura 3-0-16-0, Cremer 1-1-0-0.
Zimbabwe second innings
T.Maruma lbw Robiul Islam 10
V.Sibanda b Robiul Islam 4
H.Masakadza c & b Robiul Islam 0
B.Taylor not out 81
M.Waller c Nasir Hossain b Robiul Islam 4
E.Chigumbura c Jahurul Islam b Robiul Islam 27
R.Mutumbami lbw Robiul Islam 0
G.Cremer run out 43
K.Meth not out 13
Extras (lb-2 w-2 nb-1) 5
Total (for seven wickets, 56 overs) 187
Fall of wickets: 1-7, 2-9, 3-16, 4-27, 5-84, 6-84, 7-163.
Bowling: Robiul Islam 17-1-55-6 (2w), Rubel Hossain 6-0-31-0 (1nb), Shakib Al Hasan 9-2-22-0, Enamul Haque jnr 11-2-34-0, Sohag Gazi 9-0-24-0, Mahmudullah 4-2-19-0.
Photograph: Hagen Hopkins/Getty Images