It was India's biggest winning margin in Sri Lanka and showed just why they are the top-ranked Test side in the world.
Set a daunting 550 to win, Dimuth Karunaratne made 97 for Sri Lanka, but after his departure in the final session their hopes sank in Galle.
Mathews steps down from captaincy in all three formats
With allrounder Asela Gunaratne and stand-in captain Rangana Herath unable to bat through injury, Sri Lanka called it a day with eight wickets down and the total on 245.
Ravindra Jadeja and Ravichandran Ashwin each took three wickets for the dominant tourists.
Kohli modestly called it a "clinical performance" after his side scored 600 in the first innings and then restricted Sri Lanka to 291.
India lost the opening match in Galle two years ago, but went on to take the series 2-1 and then return to number one in the Test rankings in the following months.
Sri Lanka set for Zimbabwe Test
"We are a more experienced side now. We are playing more consistent cricket and that shows," Kohli said after the big win.
The captain reached an unbeaten 103 at the start of the day before declaring India's second innings on 240-3. He then gave his bowlers the job of grinding down the home side.
Karunaratne's stubborn 208-ball innings took him past 2,500 career Test runs but there was not enough support at the other end.
Mohammed Shami forced Karunaratne's fellow opener Upul Tharanga to play the ball onto his stumps for 10. Danushka Gunathilaka went for two, giving an easy catch to Cheteshwar Pujara at short square leg two overs later.
Kusal Mendis made a promising 36 before he made the thinnest of touches to wicketkeeper Wriddhiman Saha. The TV umpire gave it out after a Kohli appeal.
Former Sri Lanka skipper Angelo Mathews, with two to his name, gave the easiest of catches to Hardik Pandya as he skipped down the wicket looking for a big hit.
Wicketkeeper Niroshan Dickwella made 67 and his 101 partnership with Karunaratne raised Sri Lankan hopes for a while, before he was also caught behind.
That brought in Dilruwan Perera, top scorer in Sri Lanka's first innings with 92. But Karunaratne paid the price for a rare rash shot and was bowled by Ashwin, who is now on 275 Test wickets.
Nuwan Pradeep and Lahiru Kumara went within three overs, leaving Dilruwan stranded on 21.
India's brilliant first innings — in which Shikhar Dhawan scored 192 and Pujara 153 — broke Sri Lanka on the first day.
"We need to improve ourselves fast — the batting, bowling and fielding," said Sri Lankan captain Herath.
Gunaratne has been ruled out of the rest of the series with a fractured finger but veteran Herath said his injured finger would be better again in a few days.
The second Test starts in Colombo on August 3.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ