The hosts lost opener Liton Das, who edged fast bowler Dushmantha Chameera to second slip in the second over of the game.
Shakib Al Hasan struggled on his comeback match after missing the side’s last two international series. He was outfoxed by offspinner Danushka Gunathilaka for 15.
With Mushfiqur joining Tamim, Bangladesh’s innings gained pace but Sri Lanka hit back with a double strike, thanks to offspinner Dhananjaya de Silva.
Silva’s yorker got the better of Tamim, who reviewed the decision in vain. The spinner also had Mohammad Mithun leg before wicket after the batsman tried to play a paddle sweep. Mithun also failed to overturn the decision.
Mushfiqur and Mahmudullah played with caution and aggression to dominate the Sri Lanka bowlers.
Mushfiqur brought up his 40th half-century, hitting de Silva for an extra-cover boundary.
He looked set to bring up his century but was out to a reverse-sweep shot off left-arm spinner Lakshan Sandakan. The wicketkeeper-batsman hit four fours and one six in his knock.
Bangladesh then relied on Mahmudullah for some death-over carnage but he was deceived by de Silva’s flight. Instead, Afif Hossain and Mohammad Saifuddin played some big shots toward the end.