Brendan Taylor hit his fifth Test century but Taijul Islam had the last word in Dhaka to boost Bangladesh's hopes of a series-levelling victory over Zimbabwe.

Replying to Bangladesh's mammoth first-innings score of 522-7, the tourists ended day three in the second Test 304 all out, meaning they still trail by 218 runs.

They had at one stage slipped to 131-5 before Taylor combined with Peter Moor to put on a 139-run stand that held up the home side's progress either side of the tea interval.

However, once the partnership was broken, Ariful Haque trapping Moor lbw for a career-best 83 despite the batsman attempting to overturn the on-field decision with the aid of the review system, Zimbabwe's innings subsided quickly in the final session.

Taylor became the seventh batsman to depart when his knock of 110 came to an end in specular fashion, a diving Taijul clinging on to a stunning catch in the deep.

Zimbabwe lost two more wickets prior to the close of play and with Tendai Chatara unable to bat due to a leg injury, they face the prospect of being asked to follow on by home skipper Mahmudullah.

Taijul (5-107) was the pick of the Bangladesh attack, claiming his third successive five-wicket haul in the longest format after taking 11 in a losing cause in the first Test in Sylhet.

Having knocked over four of Zimbabwe's top six, the slow left-armer dismissed Regis Chakabva with what turned out to be the final ball of Monday's play, aided by a sharp catch by Mominul Haque at short leg.

Opener Brian Chari had earlier made 53 before departing to Mehidy Hasan, who backed up fellow spinner Taijul with 3-61 from 20 overs.