Khulna - Opener Tamim Iqbal brought up his fifth test century to lead Bangladesh to 316-4 at lunch on the second day of the second Test against Zimbabwe on Tuesday.
Shakib Al Hasan was batting on 89, with captain Mushfiqur Rahim on 11 at the break.
Iqbal was dismissed on 109 after trying to chase a wide delivery off Hamilton. He earned his first century in four years with a four off leg-spin bowler Natsai M'Shangwe after facing 312 balls, easily the slowest century by a Bangladeshi batsman.
Usually an attacking batsman, Iqbal ended his century drought after 33 innings. He struck 10 fours in his innings.
Iqbal was the only batsman to be dismissed in the morning session after Bangladesh resumed the day 193-3.
Shakib hit 10 fours and two sixes in his knock, which was his 17th Test half century.
Tinashe Panynagara claimed 2-39, while Masakadza and Elton Chigumbura took one wicket apiece for the visitors.