India hit back with a batting blitz after New Zealand's Rachin Ravindra struck 134 to guide the visitors to a lead of 356 on day three of the rain-hit opening Test on Friday.
The hosts were 231-3 at stumps and still trailed the Black Caps by 125 runs after Glenn Phillips got Virat Kohli caught behind for 70 on the last ball of the day in Bengaluru.
Kohli, who unsuccessfully reviewed his dismissal, put on a stand of 136 with Sarfaraz Khan, who was still batting on 70.
"Important for us to hold our lines and lengths and do that for long periods like Test cricket is," Ravindra told reporters.
"The wicket of Virat was very massive and hopefully we stick at it... in the morning."
Sarfaraz raced to his fifty in 42 balls but the crowd erupted when senior partner Kohli got his half ton at his adopted home ground of IPL team Royal Challengers Bengaluru.
Kohli soon passed 9,000 Test runs, only the fourth Indian to reach the landmark after Sachin Tendulkar (15,921), Rahul Dravid (13,265) and Sunil Gavaskar (10,122).
Spinner Ajaz Patel removed the Indian openers after a strong start to the innings when Yashasvi Jaiswal and skipper Rohit Sharma put on 72 runs.
Jaiswal made 35 before the left-hander danced down the track in his attempt to hit Patel and got stumped by wicketkeeper Tom Blundell.
Rohit smashed Matt Henry for four, six and four to raise his fifty but soon played a delivery by Patel onto his stumps and was out for 52.
Number three Kohli had a nervy start and got his first runs after 14 balls but eventually found his groove, smashing eight fours and a six.
But the day's star remained the Wellington-born Ravindra, who smashed his second Test ton and was the last Kiwi to fall in the tourists' first innings total of 402.
Ravindra, a batting all-rounder whose parents hail from Wellington and whose father was in the crowd, said the familiarity helped him in his knock.
"It's a little bit comforting although the wicket is completely different, nice knowing the surroundings," he said. "It's a lovely wicket to bat."
Ravindra resumed on his overnight score of 22 and raised his century with a boundary off Ravichandran Ashwin before lunch.
He kept up the charge during an eighth-wicket stand of 137 with Tim Southee, who smashed 65 with five fours and four sixes.
India's quicks bowled good spells in the morning after New Zealand resumed on 180-3 with Mohammed Siraj and Jasprit Bumrah striking early.
Ravindra Jadeja led the attack as he and fellow spinner Kuldeep Yadav took three wickets each.
"It was tough to control runs on this wicket, because even the good balls were being hit for runs," said Kuldeep, who wrapped up the New Zealand innings with Ravindra's wicket.
India wicketkeeper Rishabh Pant remained off the field after he injured his knee on Thursday, with Dhruv Jurel substituted.
It was the same knee Pant hurt in a serious car crash in December 2022 that forced him out of action for more than a year.
New Zealand bowled out India for 46 on day two, their third-lowest Test score and lowest ever on home turf. The first day was washed out due to rain.