India, who had a first-innings lead of 309 after centuries from Shikhar Dhawan (190) and Cheteshwar Pujara (153), dominated throughout and Kohli's unbeaten 103 helped set Sri Lanka 550 to win.
With both Asela Gunaratne and Rangana Herath unable to bat because of injury, Sri Lanka subsided to 245 all out - Ravichandran Ashwin taking 3-65.
The second Test begins in Colombo on 3 August, where India will look to wrap up the three-match series.
Virat Kohli's century laid the foundations for India's crushing 304-run victory over Sri Lanka on the fourth day of the first Test in Galle.