Bangladesh closed day three of the second and final Test against Zimbabwe in Harare 272 runs ahead with five second-innings wickets remaining after another good day for the tourists.

Robiul Islam finished with five for 85 as Zimbabwe were dismissed for 282, well short of Bangladesh's score of 391, and they went on to close on 163 for five in their second innings.

Half-centuries from Shakib Al Hasan (59) and Mushfiqur Rahim (50 not out) had built Bangladesh a handy lead as they bid to level the series after being thrashed by 335 runs in the opening match.

Zimbabwe resumed the day on 158 for four with their hopes of getting close to Bangladesh's first innings resting on Malcolm Waller and Elton Chigumbura. The former fell for 32 early on but Chigumbura went on to register a new career-best of 86 before he was bowled by the impressive Robiul.

He added 85 for the sixth wicket with Richmond Mutumbani, who made 42 but from 248 for six, Zimbabwe were quickly dismissed, adding just 34 more runs for the last four wickets as Robiul and Sohag Gazi (4-59) finished off the innings in clinical fashion.

Keegan Meth blasted 16 in 15 balls, Shingirai Masakadza made five in four and Kyle Jarvis registered a three-ball duck as Bangladesh sealed a first-innings advantage of 109.

Glad of their lead, they then limped to 18 for three as Masakadza dismissed openers Tamim Iqbal (7) and Jahurul Islam (2) before Mohammad Ashraful was trapped in front by Jarvis for eight.

The recovery was initiated by Mominul Haque, who made 29 in 58 balls and Shakib, whose 59 came from 104 deliveries. Mominul became Masakadza's third wicket when he was caught by Shingirai's brother Hamilton, who then struck to have Shakib caught by Mutumbani.

However, Mushfiqur held things together for Bangladesh, his 50 in 85 balls being his 10th Test half-century, while alongside him at stumps was Nasir Hossain, who had made six.