Veteran batter Mushfiqur Rahim struck a solid 101 to take Bangladesh to 389-6 at lunch Saturday on the fourth day of the first Test against Pakistan in Rawalpindi.
The 37-year-old took two off part-time spinner Agha Salman to complete his 11th Test century, and first against Pakistan.
The visitors are now 59 runs shy of Pakistan's first innings total of 448-6 declared.
The Rawalpindi stadium pitch continued to support batting as Bangladesh lost only Litton Das (56) in the morning session.
But before that dismissal, Pakistan had Rahim leg-before by pace bowler Mohammad Ali, but umpire Richard Kettleborough's verdict was overturned on review as the replay showed the ball missing leg stump.
Rahim, then on 59, went on to hit two boundaries off both Khurram Shahzad and Saim Ayub before reaching the three-figure mark, adding an invaluable 114 for the sixth wicket with Das.
Resuming at 316-5 Bangladesh lost Litton Das in the ninth over of the day when Naseem Shah's short delivery caught an edge and wicketkeeper Mohammad Rizwan took an easy catch. Das added just four to his overnight score of 52, hitting eight boundaries and a six.
For Pakistan, Shahzad (2-70) and Shah (2-86) were the pick of the bowlers. The second and final Test will also be played in Rawalpindi, from 30 August.