Axar Patel took his fifth five-wicket haul to help India bowl out New Zealand for 296 runs on day three of the first test on Saturday.
New Zealand lost its last eight wickets for 82 runs in the first innings as Patel's fiery 5-62 put India in command.
The hosts finished at 14-1 at stumps, with Mayank Agarwal (4 not out) and Cheteshwar Pujara (9 not out) unbeaten. Overall, India leads by 63 runs.
At lunch, New Zealand was placed at 197-2 and there was a sharp turnaround in fortunes thereafter.
In the morning, Tom Latham and Will Young stretched their opening partnership to 151 starting from 129-0.
It was the second highest opening stand by a New Zealand pair, after 231 by Mark Richardson and Lou Vincent at Mohali in 2003. Overall, it was the fifth highest opening stand by a visiting test team on Indian soil.
Young scored 89 runs, facing 214 balls, and hit 15 fours. He was caught behind off Ravichandran Ashwin (3-82).
He put on 46 runs for the second wicket with Kane Williamson (18), who was dismissed lbw off Umesh Yadav (1-50) just before lunch.
New Zealand lost four wickets on each side of the tea break and thus crashed from 197-2 in 85.3 overs to 296 all out in 142.3 overs.
Patel ran through the middle order as spin and low bounce took precedence at Green Park Stadium on Saturday afternoon.
The left-arm spinner accounted for Ross Taylor (11) and Henry Nicholls (2) in the space of nine deliveries.
The big blow came when Tom Latham was stumped off Patel in the 103rd over. The opener fell five runs short of his century after a lengthy innings. He top-scored with 95 runs, facing 282 balls and hit 10 fours.
Ashwin and Ravindra Jadeja (1-57) shared three late-order wickets to help quicken the Black Caps' downfall.
Kyle Jamieson scored 23 runs and was the only batsman apart from the openers to cross the 20-run mark. He skied a catch off Ashwin.
Patel bowled Southee to pick up his fifth wicket and became the first left-arm spinner in Indian cricket to pick five five-wicket hauls in a calendar year. He has achieved this feat in seven test innings in 2021.
"It was a hard grind today," Patel said. "They didn't lose any wickets yesterday and the talk was to keep it tight, don't try for wickets every ball, and be patient. I was sticking to the basics and using the crease a bit. My round-arm deliveries were getting something out of the track and that worked for me. The track is getting slower and there has been more turn now."
Jamieson then bowled Shubman Gill as India made a stuttering start to its second innings late in the day.
He became the quickest New Zealand pacer to pick up 50 test wickets, achieving the feat in nine matches. Shane Bond held the previous record in 12 tests.