India amassed 600 in their first innings and returned to blow away the top half of the Sri Lankan batting order to tighten their grip on the first test at the Galle International Stadium on Thursday.
Sri Lanka were reeling on 154 for five at stumps on day two, still 446 behind and facing the unenviable task of saving the match with 10 batsmen following Asela Gunaratne's series-ending thumb injury.
Also Read: Dropped catch puts Gunaratne out of Test, report says
Angelo Mathews, who relinquished the captaincy this month, was unbeaten on 54 at the close with Dilruwan Perera on six.
Earlier, India lost four wickets in the morning session but their tail wagged as they added 201 runs to their overnight score of 399-3 before being all out less than an hour before the tea break.
Nuwan Pradeep was rewarded for his lion-hearted bowling effort with career-best figure of six for 132.
Also Read: Pradeep picks maiden five-wicket haul in India Test
Resuming on 144, Cheteshwar Pujara brought up his sixth score of more than 150 before Pradeep dismissed him with a good length ball that bounced and seamed away.
Pujara batted nearly six-and-half-hours for his 153, adding 137 runs with Ajinkya Rahane who made 57.
India's lower order then decided to flex their muscles.
Ravichandran Ashwin smashed seven boundaries in his 47, Mohammed Shami clobbered three sixes in his run-a-ball 30 and all-rounder Hardik Pandya scored 50 off 49 balls on his test debut to help India reach the 600-mark.
Sri Lanka made a feeble reply.
Umesh Yadav dismissed opener Dimuth Karunaratne for two with a fuller delivery and the batsman challenged the leg-before decision but could not overturn it.
Shami dealt a double blow in his fifth over, getting both Danushka Gunathilaka, who made 16, and the scoreless Kusal Mendis caught by Shikhar Dhawan in the slips.
The hosts were reeling at 68-3 when Upul Tharanga and Mathews added 57 runs to arrest the slide.
Tharanga made 64 before falling to a bizarre run out, diving back to the crease and his bat bouncing up in the air.
Abhinav Mukund took a stunning one-handed catch at silly point to send back Niroshan Dickwella, who managed eight, off Ashwin's bowling.
(Dhawan 190, Pujara 153, Rahane 57, Pandya 50, Pradeep 6-132) leads Sri Lanka 154 for 5
(Tharanga 64, Mathews 54*, Shami 2-30) by 446 runs