Mushfiqur Rahim hit his third Test double century as Bangladesh declared their first innings with a lead of 295 Monday in their one-off match against Zimbabwe.
Bangladesh ended their innings on 560 for six in the final session before spinner Nayeem Hasan then claimed two wickets in two balls in the first over in Dhaka.
The visitors reached nine for two at stumps on the third day, still needing 286 runs to make Bangladesh bat again on a wearing pitch at the Sher-e-Bangla National Stadium.
Mushfiqur, who became the became the highest run-scorer for Bangladesh in Tests, hit an unbeaten 203, while skipper Mominul Haque made 132, after the hosts resumed on 240 for three.
Mushfiqur and Mominul added 222 for the fourth wicket, while wicketkeeper-batsman Liton Das made 53 to give the hosts their highest-ever total against Zimbabwe.
Mominul declared the innings soon after Mushfiqur reached the 200-run mark after Ainsley Ndlovu past extra cover for a boundary.
Nayeem struck with the second ball of the innings, bowling Prince Masvaure for a duck, before dismissing nightwatchman Doland Tiripano.
Bangladesh made Zimbabwe wait until the second session of the day for their first success, when Ndlovu took a brilliant reflex catch off his own bowling to dismiss Mominul.
Mominul had brought up his ninth Test hundred off 156 balls, joining teammate Tamim Iqbal as Bangladesh's most prolific century-makers in the five-day format.
Mominul, unbeaten on 79 overnight, struck 14 fours in his 234-ball innings -- his first hundred since becoming Bangladesh Test captain in November.
Mushfiqur, who resumed on 32, was one run short of his century at lunch but did not take long after the break to bring up his hundred, cutting Ndlovu for a boundary through cover point.
Ndlovu removed Mohammad Mithun for 17 to give Zimbabwe hope and slow the Bangladeshi scoring rate.
Mithun got a bottom edge as he tried to cut Ndlovu as wicketkeeper Regis Chakabva took his fourth catch of the innings.
Liton fell to off-spinner Sikandar Raza trying to cut a ball that was too close to his body as Zimbabwe wicketkeeper Regis Chakabva completed his fifth catch in the innings.
After Liton's dismissal, it was Mushfiqur all over as the senior Bangladesh campaigner attacked in pursuit of his double century.
At 195 runs he also overtook Tamim to become Bangladesh's highest run-getter. He now has 4,413 runs from 70 Tests, with Tamim scoring 4,364 from 59.
Zimbabwe skipper Craig Ervine top-scored with 107 in the visitors' first innings of 265, while Bangladesh paceman Abu Jayed and Nayeem claimed four wickets each.