Off-spinner Sikandar Raza claimed three wickets as Zimbabwe zeroed in on their first victory in five years against Bangladesh in Sylhet on Tuesday.
Kyle Jarvis and Brendon Mavuta also chipped in with a wicket apiece as Zimbabwe reduced the hosts to 111-5 by lunch on the fourth day of the first Test.
Bangladesh, chasing a record target of 321 runs in the fourth innings, resumed play on 26-0 but within half-an-hour had lost their first wicket, with others following quickly.
Play started 30 minutes early to make up for lost time after bad light brought a premature end to day three, with Bangladesh still needing 295 runs on a wearing pitch.
The home side — whose best run chase was 217-6 against the West Indies in 2009 — started collapsing once Raza reviewed a leg-before appeal against opener Liton Das.
The umpire gave Liton not out but a TV replay indicated the ball would have hit the stump after pitching outside off — ending Liton’s innings on 23.
One down, Mominul Haque dragged a Jarvis delivery onto his stumps for nine before Raza bowled Imrul Kayes for 43 to leave Bangladesh at 83-3.
Skipper Mahmudullah promoted himself to number four but could not rescue his side and perished for 16, giving a catch to substitute fielder Craig Ervine at short leg off Raza.
Raza then took a spectacular catch at cover on the stroke of lunch to hand debutant Mavuta his maiden Test wicket and send back Nazmul Hossain.
It also put Zimbabwe only five wickets away from their first win in five years since defeating Pakistan at home in 2013.