Angelo Mathews hit his 12th Test century as Sri Lanka made steady progress on day one of their series-opener in Bangladesh, reaching 4-258 at stumps.
At the close Mathews was on 114 with Dinesh Chandimal 34.
Kusal Mendis scored 54 and accompanied Mathews in a 92-run third-wicket partnership that set the pace for the match.
Sri Lanka captain Dimuth Karunaratne won the toss and opted to bat first on a pitch that appeared to be flat.
But Karunaratne himself struggled against Bangladesh offspinner Nayeem Hasan, who returned figures of 2-71 in his first Test since February last year.
Nayeem eventually had the tourists' skipper out leg-before for nine with a quicker delivery to leave Sri Lanka wobbling at 1-23.
But Oshada Fernando found the boundaries at regular intervals to keep Bangladesh fielders busy. He was eventually out just before lunch when on 36 trying to defend another quicker delivery from Nayeem, reviewing the decision in vain.
Mendis reached his 13th half-century off 93 balls soon before Mathhews reached his off 111.
But Bangladesh got a breakthrough with the first ball of the last session when Mendis played a half-hearted pull shot off Taijul Islam to give a simple catch at mid-wicket.
Mathews and Chandimal, however, dashed Bangladesh's hope of stealing an advantage in the match with risk-free batting, with the former raising his first century since January last year off 183 balls.
Before the match a minute's silence was observed in memory of former Australian player Andrew Symonds, who died in a car accident on Saturday night
Australian Associated Press
Sign up for our newsletter to stay up to date.