|Captain Sangakkara was out after scoring 75 for the home side [AFP]
Sri Lanka countered a pitch assisting seam and spin to reach a solid 293 for four on the first day of the third and final Test against India.
Thilan Samaraweera became the third Sri Lankan batsman to pass fifty and was unbeaten on 65 at the close with Angelo Mathews on 26.
The hosts only need a draw to win the three-match series 1-0.
India's Sachin Tendulkar became the most-capped player in the world when he stepped onto the pitch in Colombo on Tuesday as he passed Steve Waugh's record of 168 Tests.
Mahela Jayawardene's wicket was the solitary success for India in the final session when he was lbw to Pragyan Ojha for 56.
Sri Lanka captain Kumar Sangakkara, dropped by Suresh Raina in the slips on 23, had looked set for his third hundred of the series but, on 75, he lifted a ball from left-arm spinner Pragyan Ojha straight to Virender Sehwag at long-on.
Earlier, India struck in the final over before lunch when Murali Vijay produced a sharp piece of fielding at silly point to claim the wicket of Tillakaratne Dilshan.
The opener had scored 41 when he stepped out of his crease after playing a no-ball from Ojha and Vijay flicked the ball back to wicketkeeper Mahendra Singh Dhoni, who broke the stumps with Dilshan's bat in the air.
India picked up an early wicket in the fourth over of the morning after Sangakkara had won his third straight toss. There was plenty of movement in the pitch for the bowlers and Ishant Sharma got one ball to move away from Tharanga Paranavitana, who edged a catch to Dhoni.