Shikhar Dhawan and Virat Kohli hit centuries before the spinners struck as India took charge of the first Test against Sri Lanka at the Galle International Stadium.
The tourists, replying to Sri Lanka’s first-innings total of 183, on Thursday moved from their overnight total of 2-128 to 375 before they were all out just before stumps on the second day.
Sri Lanka, who trailed by 192 runs on the first innings, slipped to 2-5 from four overs in their second knock by close as the Indian spinners removed both openers in the first two overs.
Off-spinner Ravichandran Ashwin, who opened the bowling after taking six wickets in the first innings, bowled Dimuth Karunaratne with his fifth delivery before a run had been scored.
Leg-spinner Amit Mishra, sharing the new ball with Ashwin, then bowled Kaushal Silva for no score to provide a dramatic start to the innings.
Kumar Sangakkara, playing the penultimate Test of his international career, resumes on Friday on one facing a tough challenge to prevent India from running away with the first match of the three-game series.
Nightwatchman Dhammika Prasad was the other batsman at the crease on three, with Sri Lanka trailing by 187 runs.
Left-handed opener Dhawan scored 134, his fourth Test century and the second in succession after making 173 against Bangladesh in June, and skipper Kohli returned to form with 103.
The pair put on 227 runs for the third wicket in a fine partnership after India were reduced to 2-28 after tea on the first day.
Dhawan said he was happy to eschew his normally aggressive game to play a patient innings that helped his team take a big lead.
“I feel my shot selection has got better and that’s why I am not getting out in the 20s and 30s now,” he said.
“The major difference in my batting is that I am not giving too many chances to the opposition.
“Even if I wanted to hit I could not, because the Sri Lankans were bowling in really good areas. Maybe if the wicket was flatter I could have played more shots.”
Dhawan said the partnership with Kohli made him relax at the wicket and enabled him to play a long innings.
“It’s great to bat with Virat, who is one of the best batsmen in the world,” he said.
“You feel at ease when such kind of a batsman walks in because you know he will take control of the game.”