Craig Ervine scored his first century in five-day cricket as a captain but four wickets from Nayeem Hasan kept Zimbabwe in check on day one of the only Test against Bangladesh.

Ervine, standing in as skipper for Sean Williams, played a captain's innings at Shere Bangla National Stadium with a 227-ball 107 before falling to Hasan late on day one in the 100th international meeting between the teams.

Prince Masvaure (64), who also fell to Hasan, rode his luck at times but made a valuable knock in a century stand with Ervine as Zimbabwe closed on 228-6.

Hasan was chief protagonist with the ball, bowling 40 per cent of his team's overs and also accounting for Brendan Taylor (10) and Sikandar Raza (18) in a superb showing.

Ervine was a steady hand for Zimbabwe on what appeared a difficult pitch for batting and the tourists were only one down for 80 runs at lunch with Kevin Kasuza (2) lasting just eight overs.

Bangladesh were frustrated by Ervine and Masvaure, who added 111 runs for the second wicket, before the latter drove one straight back to Hasan for a sharp catch down to his left.

Taylor played on with a poor shot before lunch and Raza and Timycen Maruma (7) also departed as Bangladesh made more inroads.

Ervine whipped one away off the pads for two to celebrate his century but Bangladesh had their man in the penultimate over of the day when Hasan got one to straighten up, hitting the skipper's back leg before rattling the stumps.