Spinners Ravindra Jadeja and Ravichandran Ashwin chipped away at the wickets to leave New Zealand reeling on 171/9 in their second innings at stumps on Day 2 of the low-scoring third Test in Mumbai on Saturday.
Shubman Gill missed out on a century while Rishabh Pant scored a quick-fire 60 as India made 263 in their first innings in response to New Zealand's 235.
Ajaz Patel was unbeaten on seven after Will Young's battling 51 in testing conditions, as New Zealand wiped out a slender 28-run deficit and built up a valuable lead of 143 at the end of another sweltering day at the Wankhede Stadium.
"We should wrap it up with one or two runs here and there. Every run saved in this innings is going to be critical for us when we chase it down," Ashwin said.
"It's not going to be easy and we have to bat really well.
"I expected a lot more bounce and speed from this Mumbai pitch. It has been quite slow, which is surprise for me... It's not a typical Mumbai pitch."
Akash Deep put New Zealand under some early pressure in their second stanza when he castled skipper Tom Latham for one and Washington Sundar snared opener Devon Conway for 22 at the start of an absorbing final session.
Ravichandran Ashwin (3/63) had Rachin Ravindra stumped for four to leave New Zealand in trouble at 44/3, before pulling off a fine catch that got rid of the dangerous Daryl Mitchell for 21 after the batsman had put on a 50-run stand with Young.
Ravindra Jadeja (4/52) took his second wicket by dismissing Tom Blundell for four, while Ashwin snared the aggressive Glenn Phillips for 26 before the momentum swing India's way further after Ish Sodhi fell for eight.
Young looked to take the game away from India with a patient effort but spooned one back to Ashwin and Matt Henry was castled by Jadeja for 10 on the last ball of the day.
Gill, having ridden his luck, looked well set to score a ton earlier as India inched towards New Zealand's total after lunch, but the batsman edged spinner Ajaz Patel to slip and departed for a fluent 90.
Patel then removed Ashwin for six and finished with superb figures of 5/103 as Deep was run out, leaving Washington unbeaten on 38.
A late collapse on Friday meant India resumed on 86/4, and Pant eased early nerves by hitting Patel for three boundaries in the opening over before scooping one for four a little later.
Gill was given a reprieve on 45 while looking to charge Phillips midway through the first session, when substitute Mark Chapman dropped a simple catch running in from the deep.
He then reached his seventh Test half-century, as the Black Caps struggled to contain the runs after missing a big chance to turn up the heat on the hosts and boost their own chances of an unprecedented 3-0 series sweep.
Pant, who stepped out of his crease and hit Patel out of the park a couple of times and pulled Phillips for a four, then took a single to reach his fifty in only 36 balls, the fastest by an Indian against New Zealand.
Phillips was unfortunate to miss out again when Henry dropped Pant on 53, but Sodhi trapped the batsman lbw to end the fifth-wicket partnership for 96.
Jadeja fell early in the second session for 14 when Phillips forced him to edge one to slip, while Sarfaraz Khan was caught behind off Patel for a four-ball duck.
New Zealand won the opening match in Bengaluru by eight wickets for their first Test victory in India in 36 years, and wrapped up the series in Pune with a 113-run win.
The last time India were blanked at home was in 2000, when they lost 2-0 to South Africa.