Spinners Ravindra Jadeja and Ravichandran Ashwin helped India gain control of the third Test against New Zealand before the home batsmen stretched the second innings lead to 215 on the third day in Kanpur on Saturday.
The hosts, who are playing their 500th Test match, were 159 for one at stumps with opener Murali Vijay on 64 and Cheteshwar Pujara on 50 going strong.
The batting duo put together an unbeaten 107-run stand for the second wicket to take the attack to the opposition bowlers.
But it was Jadeja and Aswhin, sharing nine wickets between them, who spun it around for India after bowling out New Zealand for 262 in their first innings and securing a vital 56-run lead.
The Indian batsmen seized the advantage with Vijay putting on a 52-run opening stand with Lokesh Rahul, who finally fell to New Zealand spinner Ish Sodhi for 38.
Vijay, who registered his 13th half-century, struck seven fours and a six to entertain the raucous home crowd at Kanpur's Green Park Stadium.
Pujara also took on the spinners with aplomb as he hit eight boundaries to record his eight Test fifty in his 36th match.
Earlier Ashwin got overnight batsmen Tom Latham and Kane Williamson in the morning session to hurt the Black Caps, who started the day on 152 for one in response to India's 318.
Off-spinner Ashwin struck in the fifth over of the day to get Latham trapped lbw for 58 and break the 124-run partnership for the second wicket.
The left-handed Latham, who added just two runs to his overnight score, was done in by a drifting ball bowled by Ashwin from around the wicket.
But it was the wicket of Williamson, who scored 75, that turned the tables for the hosts as Ashwin got the dangerman bowled off a beautiful delivery that spun a lot.
Luke Ronchi steadied the innings for a while with his composed 38 but Jadeja got the batsman lbw to break the 49-run fifth-wicket partnership before lunch.
The spin twins continued to wreak havoc after the first session as Jadeja, who was denied a hat-trick, wiped off the opposition tail after taking three wickets in the 95th over of the innings.
New Zealand lost five wickets for just seven runs as they nosedived from 255 for five to pack up in 95.5 overs.
Santner contributed with 32 while wicketkeeper batsman BJ Watling also scored 21 to put up some fight but the lower-order batsmen failed to handle the Indian spinners.