Opener Kaushal Silva hit a maiden Test century as Sri Lanka continued to pile up runs against Bangladesh on the second day of the first Test in Dhaka on Tuesday.
Silva was unbeaten on 111 as the tourists, replying to Bangladesh's first innings total of 232, moved from their overnight score of 60-0 to 237-1 by tea at the Sher-e-Bangla stadium.
Silva put on 118 for the first wicket with Dimuth Karunaratne (53) and an unfinished 119 for the second with Kumar Sangakkara, who was unbeaten at the break on 59.
Sri Lanka will resume after tea with a lead of five runs and nine wickets in hand, looking to consolidate further in the first match of the two-Test series.
Bangladesh struggled to make an impact on the even-paced pitch, their lone success in the day coming before lunch when left-handed Karunaratne was snapped up at short cover off Shakib Al Hasan.
The 27-year-old Silva reached the three-figure mark in his seventh Test after making 95 and 58 in the Dubai Test against Pakistan earlier this month.
But he was lucky to be still there at the crease, having been dropped by Bangladesh captain Mushfiqur Rahim behind the stumps and again by Shamsur Rahman early in his innings.
Silva had another reprieve when he was caught behind off a no-ball by seamer Al-Amin Hossain before lunch.
The right-hander moved from 85 to 97 with a flurry of boundaries and then reached his century by pulling Shakib to the fine-leg fence for another four.
Silva has so far hit 14 boundaries, besides a six off spinner Sohag Gazi.
Sangakkara, a veteran of 121 Tests, has eight fours in his 45th Test half-century.
The two Test matches will be followed by two Twenty20 matches and three one-day internationals.