Off-spinner Ravichandran Ashwin scalped three wickets as India reduced New Zealand to 140/5 on a day on which the hosts batted the visitors out of the Test by piling on the runs in their second innings to set the Black Caps an improbable target of 540 runs to chase with more than two days to go.
New Zealand's hopes now rest on Nicholls (36 not out) and Rachin Ravindra (2 not out) as the duo survived Day 3, with the visitors still needing mammoth 400 more runs to win.
After India declared their second innings at 276/7 to take a lead of 539 runs, Ashwin started New Zealand's slide towards defeat when he trapped their stand-in skipper Tom Latham plumb in front as he played the wrong line, hoping for the ball to turn whereas it went straight. He sent back Will Young, who was totally bamboozled by an off-break that turned and bounced sharply and inside edged into his pads and substitute Suryakumar Yadav completing a low catch at short-leg. And when Ross Taylor holed out a slog sweep to Cheteshwar Pujara, the writing on the wall became more prominent.
But Daryl Mitchell, who came into the side in place of an injured Kane Williamson, struck a defiant half-century and added 73 runs for the fourth wicket with Henry Nicholls to delay the inevitable. Mitchell scored 60 of 92 deliveries, surviving a couple of close calls while hitting seven fours and two sixes. He was out to a rank poor shot, and unnecessary too, as he after hitting Axar Patel for a six in the previous delivery, came down the track again and holed out to Jayant Yadav at the extra-cover boundary. New Zealand slid further towards defeat when Tom Blundell blundered to get run out, going for non-existent run after jabbing the ball down to mid-on.
New Zealand's hopes now rest with Nicholls (36 not out) and Rachin Ravindra (2 not out) as they survived the few overs remaining for the day. Ravindra, who had denied India victory in the first Test at Kanpur holding the fort with last man Ajaz Patel, would be hoping to do the same but this time India has too much time left in their hands and New Zealand too few wickets.
Earlier, Mayank Agarwal scored 62 and shared a century partnership with Cheteshwar Pujara (47) while Shubman Gill (47) and Virat Kohli (36) added 82 runs for the third wicket and Axar Patel blasted an unbeaten 41 runs off 26 balls as India declared their second innings at 276/7, ending with a total lead of 539.
Agarwal, who struck a fantastic 150 in the first essay, added 102 runs for the first wicket with Pujara as India went about building a big lead. Agarwal, who came out with aggressive intent, hit Ajaz Patel for a couple of boundaries -- an inside-out driver over extra cover for a boundary and a six to complete his half-century, being the most pleasing shots.
He got a life when Ajaz Patel grassed a difficult chance off his own bowling. Patel had the last laugh when Agarwal (62 off 108 balls, 9x4, 1x6) took him on despite the presence of a fielder at long-off. Will Young pouched an easy one to give Ajaz his 11th wicket of the match.
The New Zealand left-armer, only the third bowler after Jim Laker of England and Anil Kumble of India to take all-10 wickets in an innings, made it all 12 when he induced a thick outside edge from Pujara with a nicely-flighted delivery that turned sharply. Pujara prodded at it and Ross Taylor at first slip grabbed the catch just millimetres above the ground.
In the morning, New Zealand pacer Tim Southee tested Agarwal and Pujara with some short balls. Agarwal was hit on his unprotected elbow when he tried to play a pull shot and had to seek the services of physio Nitin Patel twice.
Gill struck some lusty blows as he raised 47 runs in 75 balls, hitting 4 fours and a six during his stay. He became Rachin Ravindra's maiden Test victim, as he slashed at a delivery that stayed low and came slow off the track -- Gill planted the ball into the hands of Tom Latham in covers for a simple catch.
Shreyas Iyer blasted a couple of big sixes but perished for 14 runs off eight balls, stumped by Tom Bludell off Ajaz Patel, foxed by the turn. Kohli was the next to go as he chopped one from Ravindra onto his stumps for 36 and the bowler claimed the third wicket of his career when Wriddhiman Saha tried to hoist the bowler over long on but could not connect properly. Kyle Jamieson ran back to take the catch near the boundary.
Axar Patel then slammed 16 runs off the next three balls bowled by Ravindra -- a four followed by two sixes. Jayant Yadav blasted a six off Ajaz Patel but was out soon, becoming the 14th victim for the 30-year-old Mumbai-born bowler.
Ajaz continued to trouble the Indians as he claimed 4/106 runs in the second innings for an overall match haul of 14/225, the best match figures ever against India by any bowler anywhere.
The previous best was 13/106 by England's Ian Botham at the same ground in 1980. Ajaz's figures were the second-best bowling performance for New Zealand in Test cricket behind Richard Hadlee's 15/123 against Australia at Brisbane in 1985. Ajaz bowled all his 73.5 overs in the match from the Tata End.
India 325 & 276/7 in 70 overs (Mayank Agarwal 62, Cheteshwar Pujara 47, Shubman Gill 47, Virat Kohli 36, Axar Patel 41 not out; Ajaz Patel 4-106, Rachin Ravindra 3-56) v New Zealand 62 & 140/5 in 45 overs (Daryl Mitchell 60, Henry Nicholls 36 not out, Rachin Ravindra 2 not out; R Ashwin 3-27, Axar Patel 1-42).