Zimbabwe made a strong reply after Bangladesh scored its highest ever total of 503 against the African team on the second day of the third Test on Thursday.
At stumps, the visitors were 113-1, trailing by 390 runs. Sikandar Raza was on 54 with Hamilton Masakadza on 51 at stumps.
They shared an unbeaten 104 for the second wicket after Brian Chari nicked one off a Rubel Hossain (1-27) delivery to Mushfiqur Rahim when on naught.
That was the only success for Bangladesh in the last session as Raza and Masakadza played an aggressive brand of cricket to defy the spin bowlers who tormented them in the last two tests.
Masakadza brought up his third successive fifty hitting seven fours and a six. Raza brought up his third 50 in his fourth test in a knock that included nine fours.
Earlier, Bangladesh, chasing a clean sweep, surpassed the previous best of 488 against Zimbabwe set in 2005 at Chittagong when it was bowled out for 503 in its first innings.
They resumed the day on 303-2 after a 224-run opening stand between Tamim Iqbal and Imrul Kayes but Zimbabwe's bowlers put in a stronger performance over the opening two sessions on day two.
Shakib Al Hasan made 71, Mominul Haque scored 45 while Rubel Hossain smashed a quick 45 not out to entertain the local crowd.
Part time off-spinner Sikandar Raza was the most successful bowler for Zimbabwe, claiming 3-123.
Hamilton Masakadza (2-23), Tinashe Panyangara (2-70) and Shingi Masakadza (2-77) picked up two wickets apiece.
Bangladesh lost three wickets in the opening session as Zimbabwe bowlers bowled a tighter line and length.
Tinashe Panyangara gave the side a much-needed breakthrough when Mominul Haque nicked one to the slips on 48.
Shingi Masakadza was also rewarded for his good work through the morning session, removing Mahmudullah lbw for 16.
Medium pacer Hamilton Masakadza then dismissed captain Mushfiqur Rahim for 15, playing the ball onto his stumps, to make the first session a good one for the tourists.
Shakib Al Hasan resisted and provided a solid platform to take the side to a big total.
He was on course for his second consecutive test century until he played a rash shot against the flighted delivery of Sikandar Raza to give away his wicket. Craig Ervine leapt to his right to take an excellent catch at cover.
Rubel Hossain made a barrage of big shots, scoring 45 off 44 balls with four sixes to take Bangladesh past 500 for the fourth time in test history.
He and Jubair Hossain (5) added 52 runs for the 10th wicket, a Bangladesh-Zimbabwe record for the last wicket.
Bangladesh, aiming for a 3-0 sweep, claimed the first test by three wickets and second by 162 runs.