Mominul hit an unbeaten 175 as the hosts reached 374-4 at stumps after electing to bat first at the Zahur Ahmed Chowdhury Stadium.
The left-hander shared a 236-run third-wicket stand with former captain Mushfiqur Rahim, who fell just short of his fifth Test hundred after scoring 92 off 192 balls.
Skipper Mahmudullah Riyad, on nine, was batting alongside Mominul when stumps were drawn at the start of the two-match series.
Suranga Lakmal struck with the second new ball to claim two wickets off successive deliveries and give Sri Lanka some respite late into the final session.
More From This Section
The medium-pacer bowled Liton Das for a duck with the next ball, which swung late to uproot the off-stump after the batsman had attempted to leave the delivery.
Mominul was dominant at the other end, hitting 16 fours and a six off veteran spinner Rangana Herath during his stay, which has lasted 203 balls so far.
The 26-year-old posted his fifth Test century and his first in more than three years off just 96 balls, with back- to-back fours off left-arm wrist spinner Lakshan Sandakan.
Mominul was the fastest Bangladeshi to achieve the feat, overtaking Tamim Iqbal's record of 53 innings.
Mominul's authoritative batting came at his favourite ground after Bangladesh had lost both openers, Tamim and Imrul Kayes, in the morning session despite starting strongly.
Tamim made 52 off 53 balls and shared a 72-run opening stand with Kayes (40).
Off-spinner Dilruwan Perera bowled Tamim with a beautiful delivery that pitched outside off-stump and spun sharply to beat the batsman and clip the bails.
Sandakan trapped Kayes leg-before on the stroke of lunch, ending the left-hander's 75-ball stay.