A lot of momentum that the hosts gathered was down to Captain Brendan Taylor, who added 44 runs off only 46 balls in the session before skewing one off the inside half to square leg.
Taylor, who worked the angles behind square very well, even swept Shakib and brought out the reverse against Mehidy Hasan, the bowler who would eventually get him out.
Taylor fell after drinks, having scored his 11th Test fifty as Zimbabwe added 60 runs in the first hour of play. Takudzwanashe Kaitano was steady at the other end and got to his maiden Test fifty on debut.
Chief scores
Bangladesh: 468
Zimbabwe: 209/2 (Taylor 81, Kaitano 62 n.o). (Agencies)