Sri Lanka crumbled in their bid to save the first Test as India secured a crushing 304-run victory to take a 1-0 lead in the three-match series.
Having fallen 309 runs behind after the first innings, the hosts found themselves needing 550 to win the match on day four as India piled on the runs once again.
Virat Kohli (103 not out) reached his 17th Test hundred before declaring on 240-3, the Indian skipper keen to unleash his bowlers against the fragile Sri Lanka batting line-up.
Sri Lanka's chase started badly as both Upul Tharanga (10) and Danushka Gunathilaka (2) fell early and, although there was some resistance, wickets came in batches as India closed in.
With Asela Gunaratne (thumb) and Rangana Herath (finger) unable to bat due to injuries, victory was assured with the dismissal of Lahiru Kumara, Ravindra Jadeja (3-71) snaffling his third of the innings to wrap things up.
India started the day with a healthy 498-run advantage and quickly set about adding to it as Kohli and Ajinkya Rahane (23no) took their fourth-wicket stand past 50.
With a century in his sights Kohli, who resumed on 76, ensured he was lifting his bat before sending Sri Lanka back in, a single off Dilruwan Perera (1-67) ending poor form that had seen him hit just 49 runs from his previous six innings.
His declaration left the injury-stricken hosts needing to score 549 runs or survive over five sessions just to earn a draw.
They could not last the day, though, as Kohli's bowling unit all contributed to a massive win for the world's top Test team.
Having already been dropped by Kohli in the third over, Tharanga was clean bowled by Mohammed Shami (1-43) two balls later to start the decline, the opener dragging on having been cramped for room by a seaming, bouncing delivery.
His replacement Gunathilaka fared no better as Umesh Yadav (1-42) removed him three overs later for just two runs, Sri Lanka perilously poised at 29-2.
Dimuth Karunaratne - who only scored two in the first innings - steadied the ship to lunch with the help of Kusal Mendis (36), but their resistance did not last long into the second session of the day as India's spin kings took over from their seamers.
Jadeja pushed one through quicker to Mendis that caught the outside edge into Wriddhiman Saha's gloves, Kohli's challenge overturning the on-field decision of not out.
From there Sri Lanka's resistance was futile despite the best efforts of Karunaratne, the opener falling three short of a century as he became Ravichandran Ashwin's (3-71) second victim of the day.
With Gunaratne and Herath both absent due to injury it was Kumara's top-edge high to Shami on the mid-off boundary that singled the end, India bowling Sri Lanka out for 245 to secure their biggest run-margin win away from home.