Indian off-spinner Ravichandran Ashwin bagged five wickets to throw the second and final Test against New Zealand wide open on the third day in Bangalore on Sunday.
Ashwin finished with 5-69, his fifth haul of five or more wickets in a Test innings, as New Zealand reached 232-9 in their second innings at stumps for an overall lead of 244.
New Zealand paceman Tim Southee earlier grabbed a maiden seven-wicket haul as India were bowled out for 353 in their first innings in the morning in reply to the tourists' 365.
New Zealand first innings 365
India first innings (overnight 283-5):
G Gambhir b Southee 2
V Sehwag c Flynn b Bracewell 43
C Pujara c Boult b Southee 9
S Tendulkar b Bracewell 17
V Kohli lbw b Southee 103
S Raina c van Wyk b Southee 55
MS Dhoni lbw b Southee 62
R Ashwin not out 32
Z Khan c van Wyk b Southee 7
P Ojha c van Wyk b Southee 0
U Yadav b Boult 4
Total (for all out; 96.5 overs) 353
Fall of wickets: 1-5 (Gambhir), 2-27 (Pujara), 3-67 (Sehwag), 4-80
(Tendulkar), 5-179 (Raina), 6-301 (Kohli), 7-312 (Dhoni), 8-320 (Zaheer), 9-320 (Ojha), 10-353 (Yadav).
New Zealand second innings:
B McCullum c Dhoni b Yadav 23
M Guptill b Yadav 7
K Williamson c Sehwag b Ashwin 13
R Taylor lbw b Ojha 35
D Flynn c Sehwag b Ashwin 31
J Franklin st Dhoni b Ashwin 41
K van Wyk lbw b Ashwin 31
D Bracewell lbw b Ojha 22
T Southee b Ashwin 2
J Patel not out 10
T Boult not out 0
Total (for nine wickets; 69 overs) 232
Fall of wickets: 1-30 (Guptill), 2-31 (McCullum), 3-69 (Williamson), 4-111
(Taylor), 5-140 (Flynn), 6-195 (van Wyk), 7-216 (Franklin), 8-222 (Southee), 9-222 (Bracewell).
The 23-year-old finished with 7-64, the best by a New Zealander in a Test innings in India.
New Zealand were struggling at 140-5 before James Franklin (41) and Kruger van Wyk (31) added 55 crucial runs for the sixth wicket to boost their team's hopes of setting a competitive fourth-innings target.
Ashwin struck vital blows when he had Franklin stumped and then trapped van Wyk lbw before accounting for Southee in the last session.
Indian paceman Umesh Yadav did the early damage when he removed both the openers in his successive overs. He bowled Martin Guptill (seven) with a full-toss and had Brendon McCullum (23) caught behind.
Skipper Ross Taylor, who scored an aggressive 113 in the first innings, contributed 35 this time as he was trapped leg-before while attempting to sweep left-arm spinner Pragyan Ojha.
Ashwin, who took 12 wickets in his team's win by an innings and 115 runs in the opening Test, also had Kane Williamson (13) and Daniel Flynn (31) caught by Virender Sehwag in the slips.
New Zealand earlier struck with the second new ball, which was taken immediately after it was due, as India added 70 runs to their overnight total of 283-5.
Southee, playing his 19th Test, claimed four of the five wickets that fell in the morning, including those of middle-order batsman Virat Kohli (103) and skipper Mahendra Singh Dhoni (62).
He took all of his wickets with the second new ball, conceding 28 runs in his lively eight-over spell.
Southee came close to getting his eighth wicket but Guptill failed to hold on to a sharp chance in the slips off Ashwin, who went on to make an unbeaten 32 with five fours.
Ashwin helped his team cross the 350-mark with a 33-run stand for the last wicket with Yadav.
Kohli, playing only his 10th Test, cracked one six and 14 fours in his second hundred, and his first in India, while Dhoni hit two sixes and eight fours in his second successive Test half-century.
The pair added 122 for the sixth wicket.
Kohli, 93 overnight, flicked pacemen Doug Bracewell and Trent Boult for fours to reach his hundred but fell soon after, trapped leg-before offering no stroke to an in-coming Southee delivery.
Dhoni straight-drove the first delivery from new-ball bowler Boult for a boundary to complete his 26th Test half-century. He added just 16 to his overnight score of 46 when he fell lbw to become Southee's 50th Test victim.