A rampant India subjected Sri Lanka to the ignominy of follow-on on Saturday after Ravichandran Ashwin claimed his 26th five-wicket haul to help rout the hosts for 183 in the second test.
Ashwin (5-69) and spin partner Ravindra Jadeja shared seven wickets as Sri Lanka, resuming on 50-2, collapsed on a day three pitch that allowed for prodigious spin, with the ball often kicking up puffs of dust.
Niroshan Dickwella topscored with a desperate 51 as Sri Lanka lost their remaining eight wickets in an extended morning session to find themselves staring at a 439-run first-innings deficit and series loss with a match to spare.
India captain Virat Kohli, who led his team to a crushing 304-run win in the first of the three tests, understandably began the day with spin and was almost rewarded with immediate success.
Kusal Mendis guided Jadeja's fifth delivery tantalisingly close to Cheteshwar Pujara but the fielder was standing too close to grab the ball as it flew past him.
Kohli's field placement was right to a tee in Jadeja's third over when avid sweeper Dinesh Chandimal sent the spinner straight to Hardik Pandya, who had been stationed at square leg for exactly that shot.
Sri Lanka had wanted something special from their skipper but Chandimal, who missed the Galle series opener with pneumonia, had managed only 10.