New Zealand closed in on victory over India in the second Test after 16 wickets fell on day two in Christchurch on Sunday.
India, who trail the series 1-0, made the better start to the day at Hagley Oval, taking a seven-run first-innings lead after bowling the Black Caps out for 235.
New Zealand had resumed at 63-0 and appearing on track to charge past India's first-innings total of 242.
However, after their fightback, the tourists were reduced to 90-6 at stumps in their second innings, a lead of just 97, as the bowlers dominated.
Trent Boult (3-12) did most of the damage for New Zealand, landing the first blow when he trapped Mayank Agarwal (3) lbw.
A short delivery from Tim Southee (1-20) removed Prithvi Shaw, but India seemed to be steadying through Cheteshwar Pujara and Virat Kohli.
But Colin de Grandhomme (1-3) struck the huge blow, getting Kohli lbw for 14 to reduce India to 51-3.
De Grandhomme dropped Ajinkya Rahane on two but it did not hurt the Black Caps, the India batsman bizarrely playing a Neil Wagner (1-18) short ball onto his stumps.
Boult produced a beautiful inswinger to remove Pujara (24) before also bowling Umesh Yadav (1) as New Zealand closed in on victory.
Earlier, Mohammed Shami (4-81) and Jasprit Bumrah (3-62) had helped India fight back after New Zealand's bright start to their first innings.
Tom Latham (52) and Kyle Jamieson (49) top-scored for the Black Caps, while Ravindra Jadeja produced an incredible catch to remove Wagner (21).
Jadeja stuck out a hand as he jumped near the boundary to hold onto a powerful Wagner pull shot.
That moment of brilliance came as India looked on top, but New Zealand's finish to the day has them on track for a 2-0 series win.