Rohit Sharma was the only batsman to depart, caught by skipper Angelo Mathews of Nuwan Kulasekara at the personal score of five.
Shikhar Dhawan (6) and Murali Vijay (1) was at the crease for India.
Earlier, Upul Tharanga smashed a career-best unbeaten 174 , while Mahela Jayawardene made 107 as Sri Lanka produced a dominant batting display to post an imposing 348.
Tharanga scored his runs off just 159 deliveries with the help of 19 boundaries and three hits over the fence.
More From This Section
Towards the end, Mathews played a 29-ball 49-run cameo to help help Sri Lanka get near the 350-run mark. He struck fours boundaries and one six in the process.
Sent into bat, Sri Lanka made a quiet start to their innings before Jayawadene and Tharanga opened up.
Jayawardene and Tharanga mixed caution with aggression to pile up 47 runs in the first 10 overs.
Shami Ahmed, who replaced Bhuveneshwar Kumar, and Umesh Yavad failed to derive any assistance from the low and slow Sabina Park wicket as the Sri Lankan opening duo milked the Indian attack to surge ahead.