Off-spinner Ravichandran Ashwin starred with a six-wicket bag for India as they bowled out Sri Lanka for 183 on day one of the first cricket test in Galle.
Twelve wickets fell on the opening day which ended with India in a strong position on 128 for two.
Opener Shikhar Dhawan was unbeaten on 53 and skipper Virat Kohli 45 after combining in a century partnership for the third wicket.
The Indian spinner Ashwin, playing a Test match on Sri Lankan soil for the first time, finished with six for 46 after the home team won the toss.
Ashwin said he expected the pitch to play slower as the game progressed, making it tough for both batsmen and bowlers.
Angelo Mathews top-scored for Sri Lanka with 64 and Dinesh Chandimal led a charmed life to make 59, the pair sharing a 79-run partnership for the sixth wicket after the home team had collapsed to 60 for 5 before lunch.
Chandimal said the early moisture in the wicket made batting difficult, but acknowledged that the Indians bowled well.
Kumar Sangakkara, playing the first of his last two Tests before retiring from international cricket, was heralded onto the ground with a burst of fireworks and generous applause from some 1,500 home fans.
But the left-hander, the leading run-scorer in Tests among those still playing, faced only 12 deliveries before his dimissal for just five runs.