"Being a bit more patient, leaving a few more balls, cutting out certain scoring areas. He has played a fantastic innings," said Bangladesh coach Russell Domingo.
"I am really pleased with him. He has worked really hard on his game in the last couple of months."
After a wicketless first session, Shanto finally fell to Lahiru Kumara after lunch, giving away a return catch to the pace bowler.
It marked the end of a marathon stand which also equalled the best third-wicket effort at the venue set by the Pakistan pair of Shan Masood and Younis Khan in 2015.
Mominul reached his 11th Test hundred -- remarkably it was his first outside Bangladesh -- by cutting a wide delivery from Dhananjaya de Silva for four.
De Silva finally removed the captain who edged to Lahiru Thirimanne at first slip.
"I think Mominul understands his game really well. He is a very calm person," said Domingo.
"He is meticulous in his preparation. I think he is a fantastic Test batsman."
Mushfiqur and Liton then stood firm to put an unbeaten stand of 50 and played some cheeky shots to frustrate the Sri Lankan bowlers.
Mushfiqur hit a scoop shot over the wicketkeeper's head off Dimuth Karunaratne's medium-pace bowling.
The final session was interrupted briefly for rain and then called off again due to bad light after just 7.5 overs.
With 25 overs lost in the day, play will resume 15 minutes early on day three.
Left-arm quick Vishwa Fernando said it was tough grind for the bowlers on the batting wicket.
"We didn't get as much support from the wicket as we thought," said Fernando. "We felt it was dry underneath and it's now a batting wicket."