Batting all-rounder Rachin Ravindra hit 134 to guide New Zealand to 402 and a lead of 356 against India on day three of the rain-hit opening Test on Friday.
Indian spinners Ravindra Jadeja and Kuldeep Yadav took three wickets each to help bowl out the visitors during the second session in Bengaluru.
Wellington-born Ravindra resumed on his overnight score of 22 and was the last New Zealand wicket to fall after smashing 13 fours and four sixes.
He raised his ton with a boundary off Ravichandran Ashwin before lunch and 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 taking the wicket of Daryl Mitchell, caught at gully for 18.
Wicketkeeper-batsman Tom Blundell was the next to depart with pace spearhead Jasprit Bumrah getting him caught at second slip for five.
Jadeja sent back Glenn Phillips for 14 and Matt Henry for eight with deliveries that skidded off the pitch to rattle the stumps.
India said they were keeping Rishabh Pant off the field for the day after the wicketkeeper injured his knee on Thursday, with Dhruv Jurel substituted in on Thursday.
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 fast bowlers Henry and William O'Rourke shared nine wickets between them to bowl out India for 46 on day two, their third-lowest Test score and lowest ever on home turf.