Colombo - Thilan Samaraweera, Mahela Jayawardene and Tillakaratne Dilshan scored half-centuries as Sri Lanka reached 337 for seven at tea on the second day of the first Test against Bangladesh on Tuesday.
Sri Lanka, 160 for three overnight in reply to Bangladesh's first innings 188, had a lead of 149.
Dilshan was unbeaten at the interval on 58, having hit five boundaries.
Samaraweera, batting at four, anchored the Sri Lanka reply with a patient and determined 78 in a four-hour innings that spanned 198 balls.
Jayawardene provided him with solid support, scoring a more fluent 120-ball 63 that included seven boundaries and a lofted six over extra cover.
The pair shared a 101 run stand for the fourth wicket until Jayawardene edged behind as he tried to cut a short ball from left-arm spinner Mohammad Rafique.
Samaraweera built another useful 64-run stand with Dilshan before glancing a catch down the leg side off medium pacer Shahadat Hossain and being caught by wicketkeeper Khaled Mashud.
Rafique was the most successful bowler for the tourists, following his morning dismissal of Jayawardene with the wickets of Chaminda Vaas (five) and Rangana Herath (13).
Extracting sharp turn from the spin-friendly pitch, Rafique finished the session with 4-100 from 30.2 overs.
Bangladesh, who have lost their previous three Tests to Sri Lanka, will play two back-to-back matches in the series.