Rachin Ravindra smashed a game-changing century as New Zealand posted 402 all out for a substantial first-innings lead of 356 runs over India, who responded by reaching 231-3 at stumps on the third day of the rain-affected opening Test on Friday.
Resuming on 180-3 at a sun-drenched M Chinnaswamy Stadium, the tourists rode Ravindra's spectacular 134 and Tim Southee's 65 to turn the screws on the hosts, who will be desperate to avoid a first home defeat against New Zealand since 1988.
India were still staring at a daunting challenge despite a much more assured performance in their second innings, trailing by 125 runs at the close with Sarfaraz Khan on 70 not out after Virat Kohli fell for the same score on the day's final ball.
Rohit Sharma made 52 and opening partner Yashasvi Jaiswal scored 35 earlier, but the dismissals of the swashbuckling duo left India ill at ease.
Kohli then helped settle the nerves in the company of Khan, with a fine knock that helped him cross 9,000 Test runs, although the veteran batsman was handed a lifeline when Ajaz Patel dropped him at slip in the evening session.
Kohli failed to make the most of the reprieve, edging one to wicketkeeper Tom Blundell off Glenn Phillips at the end.
The high-scoring day belonged to New Zealand with Ravindra's knock putting his team in a commanding position.
Ravindra, who was born in Wellington but has family hailing from the south Indian city of Bengaluru, reached his second Test ton earlier with a swept boundary off Ravichandran Ashwin to draw huge cheers from an adoring home crowd.
The all-rounder hit 13 fours and four sixes, and forged a 137-run partnership with Southee for the eighth wicket, as the pair heaped more misery on India.
The hosts had been bowled out for a paltry 46 in the first innings, their worst total on home soil, as New Zealand's fast bowlers dazzled on a gloomy Thursday morning after the opening day was washed out without a ball being bowled.
Daryl Mitchell departed for 18 on Friday morning, finding Yashasvi Jaiswal at gully with a careless shot against Mohammed Siraj, while Jasprit Bumrah had Blundell (5) caught at slip by KL Rahul as sustained pressure by the two pacers paid off.
The duo beat the bat on numerous occasions in the opening hour but it was the introduction of spin that troubled the Black Caps, Ravindra Jadeja shattering the stumps of Phillips (14) to leave them on 223-6.
Matt Henry (8) perished in a similar manner after smashing a couple of boundaries as Jadeja claimed his third wicket, but New Zealand steadily clawed their way back from 233-7.
Southee eventually fell to Siraj shortly after lunch, but the former captain had already done plenty of damage with five fours and four sixes in his defiant knock before the innings came to an end when Kuldeep Yadav struck twice.
After trapping Patel lbw, the leg-spinner conceded a six to Ravindra that took New Zealand past 400 runs, before he had the left-hander caught as he attempted another big one.