Ravichandran Ashwin took four wickets as India bowled Sri Lanka out cheaply on day one of the second Test in Nagpur.
Dinesh Chandimal top scored with 57 after winning the toss and Dimuth Karunaratne (51) also made a half-century, but the tourists collapsed from 160-5 to 205 all out.
Ashwin claimed figures of 4-67, while fellow spinner took Ravindra Jadeja (3-56) and Ishant Sharma marked his return by finishing with 3-37 at Vidarbha Cricket Association Stadium on Friday.
Lahiru Gamage removed KL Rahul to give Sri Lanka a lift, but it was India's day and they will resume on 11-1 - trailing by 194 as they attempt to take a 1-0 lead in the three-match series after the first Test was drawn.
Ishant came into the side after Mohammed Shami was ruled out with a niggle and the paceman made an early breakthrough, Cheteshwar Pujara taking a fine catch in the slips to remove Sadeera Samarawickrama (13).
Lahiru Thirimanne was bowled for nine attempting a sweep to give Ashwin a first wicket of the series and Karunaratne would have followed on 21 had Jadeja not overstepped in his first over when the opener was stumped, having also been dropped by Pujara in the morning session.
Jadeja was not to be denied after lunch, trapping Angelo Mathews (10) leg before and Karunaratne went in the same manner to end a fourth-wicket stand of 62 with Chandimal when he was out lbw to Ishant after striking six boundaries in a patient knock.
Chandimal launched Ashwin down the ground for six and Niroshan Dickwella (24) adopted his usual positive approach, but Sri Lanka crumbled after the wicketkeeper was dismissed by Jadeja.
Ashwin kept the pressure on and was rewarded with another three wickets, including Chandimal lbw, as India swarmed all over Sri Lanka to wrap up the innings.
Rahul then played on to a delivery from Gamage in the fourth over of their reply on an opening day dominated by the bowlers.