Spinners Ravichandran Ashwin and Ravindra Jadeja shared six wickets to help India to a thumping 304-run win against Sri Lanka on the fourth day of the first test on Saturday for a 1-0 lead in the series.
The hosts, chasing a mammoth 550 for victory, only managed 245 runs before their second innings folded in the final session of the penultimate day, after opening batsman Dimuth Karunaratne had been dismissed for 97.
Asela Gunaratne, who had fractured his thumb and was ruled out of the series, and stand-in captain Rangana Herath, who suffered a hand injury on Friday, did not bat for Sri Lanka in the second innings.
"(I'm) Really happy with the way things went in this particular game," India captain Virat Kohli said at the presentation. "All bases were covered nicely and the guys stood up when it was needed most.
"The surface didn't offer much. That's why the win is more special because the bowlers had to work hard."
India, the world's top-ranked test side, declared their second innings closed on 240 for three after Kohli completed his 17th test hundred.
The right-handed batsman, who resumed the day on 76, remained unbeaten on 103 after reaching the milestone with a single off spinner Dilruwan Perera.
The century ended a poor run in tests for Kohli, who hit five boundaries and one six in his 136-ball knock, with the 28-year-old totalling a meagre 49 runs in his last six innings.
Burdened with an improbable target, Sri Lanka needed a solid opening stand but their hopes were dashed when Mohammed Shami bowled Upul Tharanga for 10, a relief for Kohli who had dropped the batsman at second slip in the same over.
Debutant Danushka Gunathilaka did not last long either and was out for two, hitting Umesh Yadav straight into the hands of Cheteshwar Pujara at square leg.
Sri Lanka were 29-2 at that stage and needed a solid 79-run stand between Karunaratne and Kusal Mendis to settle things down.
India came back strongly after lunch with two quick wickets from left-arm spinner Ravindra Jadeja, ranked number one in the world in the longest format.
Mendis, who made 36, was given not out on a caught behind appeal but India successfully overturned the umpire's decision on review. Former captain Angelo Mathews fell soon afterwards, mis-hitting Jadeja to get caught by Hardik Pandya.
Mathews' dismissal brought Karunaratne and Niroshan Dickwella together and the pair added 101 for the fifth wicket, before Dickwella was caught by wicketkeeper Wriddhiman Saha to become Ashwin's first victim of the innings.
Karunaratne dragged the off-spinner back onto his stumps while playing a sweep shot and fell perilously close to his sixth test hundred.
Ashwin, who took 3-65, also dismissed Nuwan Pradeep without scoring before Jadeja (3-71) wrapped things up when Lahiru Kumara skied an attempted slog to become the last man to fall for the hosts.
"All credit goes to the India team," Herath said. "We need to improve ourselves in all three departments."
The second test will be played from Thursday in Colombo.
(Dhawan 190, Pujara 153, Pradeep 6-132) and 240 for 3 dec
(Kohli 103*, Abhinav 81) beat Sri Lanka 291
(Perera 92*, Mathews 83, Jadeja 3-67) and 245
(Karunaratne 97, Dickwella 67, Ashwin 3-65, Jadeja 3-71) by 304 runs