India were bundled out for a dismal 46, their worst total on home soil, as New Zealand's fast bowlers ran amok in overcast conditions before the tourists got to 180-3 at stumps on the second day of the rain-hit opening test in Bengaluru.
New Zealand swelled their lead to 134 runs under glorious sunshine and will eye a big total to improve their chances of a first victory over India in the country since 1988.
Devon Conway took the attack to the jolted hosts with a bold approach during his 91, while Rachin Ravindra was unbeaten on 22 and Daryl Mitchell on 14 not out at stumps.
Earlier, in conditions more reminiscent of Christchurch than Karnataka, Matt Henry bagged 5-15 while fellow speedster William O'Rourke sparkled in his first match in India with 4-22 to skittle the hosts shortly after lunch.
The 46 runs were India's third-lowest test total and the fewest in an innings by any team playing in the country, short of the 62 the Black Caps managed against the hosts at Mumbai three years ago.
India's previous lowest total at home was the 75 they made against West Indies in New Delhi in 1987.
After the opening day was washed out, Rohit Sharma raised eyebrows by opting to bat first in a seamer-friendly environment under lights at the M Chinnaswamy Stadium and was fortunate to survive a loud appeal for lbw from Henry in the morning.
"You see (the pitch) and try and make a judgement. Sometimes you make the right call and sometimes, you don't," Rohit said.
"I'm hurting a little bit because I made that call ... The challenges that were thrown at us, we didn't respond to well and found ourselves in a situation where we got bowled out for 46.
"As a captain, it definitely hurts to see that number."
The skipper did not last long at the crease as Tim Southee castled him with a delivery that nipped back in and the tourists then landed two more heavy blows by dismissing Virat Kohli and Sarfaraz Khan for ducks in successive overs.
Kohli, in at number three after Shubman Gill was ruled out with injury, was caught at leg gully by a diving Glenn Phillips after O'Rourke delivered a ball that moved back in towards the veteran batsman's ribcage.
Khan fell to Henry thanks to a stunning catch by Conway at mid-off, leaving the hosts teetering at 10-3.
Dropped chance
New Zealand could have had a fourth wicket shortly after a brief rain interruption but for some sloppy wicketkeeping by Tom Blundell, who dropped a simple chance and handed Rishabh Pant a lifeline when the left-hander was on seven.
Opener Yashasvi Jaiswal was not as fortunate when a well-timed cut off O'Rourke went straight to Ajaz Patel, before the towering paceman sent back KL Rahul for a duck.
Henry compounded India's woes by removing Ravindra Jadeja for another duck, the fourth of the innings before lunch, and then added Ravichandran Ashwin to that list with the first ball after the break.
He then dismissed Pant for 20 before claiming his fifth victim of the innings and 100th of his test career by having Kuldeep Yadav caught at gully.
O'Rourke earlier accounted for Jasprit Bumrah, with Henry taking a brilliant catch in the deep.
"It was a good toss to lose," said Henry. "It was quite nice when those clouds started coming in.
"I think we were expecting it to be a flatter wicket, but there was plenty of assistance this morning so it was great that we could make the most of it."
India lost their last seven wickets for only 15 runs as fans in the stadium cheered every time the lower-order batsmen played defensive shots under pressure.
The crowd had little to celebrate until New Zealand's Tom Latham (15) and Will Young (33) departed, with the loudest roar reserved for the wicket of Conway when he was bowled by Ashwin after hitting the India attack for 11 fours and three sixes.
A right knee injury to Pant during a missed stumping added to India's miserable day, as the wicketkeeper limped off and was replaced by Dhruv Jurel.
-Reuters