Bangladesh staged fightbacks with ball and bat on the second day of the one-off Test against Zimbabwe in Harare.
Zimbabwe had looked on course for a daunting first innings total after reaching 304 for two on the back of Hamilton Masakadza's second Test century, but Bangladesh sparked a collapse that saw the hosts all out for 370.
The visitors were then reduced to 36 for two in their reply before Shahriar Nafees and Mohammad Ashraful staged another Bangladesh recovery, this time with the bat, as the pair put on a 66-run stand for the third wicket.
Nafees fell for 50 just before the close, though, to leave Bangladesh on 107 for three - 263 runs adrift of Zimbabwe's total.
Zimbabwe, playing in their first Test since ending a self-imposed six-year exile from the longest format of the game, looked to be cruising midway through the morning session with Masakadza and the captain Brendan Taylor (71) at the wicket.
However, the dismissal of Masakadza, caught by Imrul Kayes at slip off the bowling of Robiul Islam for 104, was the start of a remarkable reversal of fortunes as Zimbabwe lost their final eight wickets for just 66 runs.