Riding on Rohit Sharma's fluent 82, India emerged stronger in the battle of attrition against a gritty New Zealand to take complete control of the second cricket Test by grabbing a 339-run lead, on day three of the second Test at Eden Gardens on Sunday.
The Indians were pushed hard in the first two sessions but roared back in the final session to be 227/8 before bad light forced close of play.
Wriddhiman Saha (39) and Bhuvneshwar Kumar (8) were at the crease when stumps were called.
Despite some patchy batting, the hosts look set to take a 2-0 lead in the three-match series, a result that would also propel them to the top of the ICC Test rankings.
Earlier, resuming the day at 128/7, the Black Caps' first innings wrapped up at 204 helped primarily by comeback-man Jeetan Patel's run-a-ball 47, which was laced with nine hits to the fence.
The hosts also struggled to get going at Eden Gardens as in-form Kiwi pace duo of Matt Henry (3/44) and Mitchell Santner (3/51) continued to deliver, especially in the post-lunch session before Virat Kohli's men gathered themselves in the final session.
Reduced to 91/5, the home team was rescued by Rohit and Saha, who had scored an unbeaten half-century in the first innings as well. The two put on 103 run off 179 deliveries to steer India out of trouble.
Eden Gardens once again proved to be Rohit's happy-hunting ground -- he scored his debut Test century, an ODI world record 264, two IPL titles for Mumbai Indians, beside a Ranji Trophy double.
Among the top half, Kohli, who has been struggling for some time, produced a fine 65-ball 45, including 7 fours, to announce his return to form, before being trapped LBW by Boult off a delivery that kept low because of the unpredictable bounce.
Rohit took it forward from there and hit nine fours and two sixes en route to his second fifty in two Tests, and sixth overall. The 29-year-old's fluent knock was brought to an end by Santner who induced a faint edge from his bat, caught by Luke Ronchi.
Rohit made his intentions clear by hitting Jeetan Patel for a six over midwicket early in his innings, and when Trent Boult (2/28) was making the ball talk bowling at shoulder height, the Indian counter-attacked with a pull over square leg boundary.
There was a minor blip for Rohit, when Patel almost castled the Indian but the delivery missed the off-stump and the Eden did not deny him a half-century.
Earlier, in reply to India's 316 in the first innings, New Zealand were bundled out for 204 in 53 overs in the first one and half hour's play.
Playing his first Test after more than three years, batting at No 9, Patel, who was flown in from England to replace an injured Mark Craig, top-scored for New Zealand with his 47 in a 60-run partnership with BJ Watling (25).
Patel's career-best score took New Zealand past the 200-mark. Senior off-spinner Ravichandran Ashwin gave India the first breakthrough of the day in his first over.
New Zealand, however, did well to survive the opening hour's play which included a brief 10-minute rain halt.
Patel struck three boundaries in one Ravindra Jadeja over and survived an LBW decision after the India spinner overstepped.
But Ashwin denied him his first International half-century and dismissed Patel when he skied a catch to Shami while trying to clear mid-on.
Mohammed Shami (3/70) then dismissed Watling (25) and Neil Wagner (10) in successive overs to wrap up the tail giving India a 112-run first innings lead.
India's pace duo of Bhuvneshwar Kumar (5/48) and Shami accounted for eight wickets, while spinners Jadeja and Ashwin took one each.
That India's ace spinner Ashwin just had to bowl eight overs summed up how pacer-friendly the re-laid Eden wicket was, as it had variable bounce and carry.
In reply, it was another top-order collapse barring Kohli, who hit seven delightful boundaries and shared 48 runs with Rohit which took India's lead past 200.
Kohli gave the 25,000-odd spectators lots to cheer for by effortlessly guiding the ball away in his solid knock.
The Indian captain had a close shave when he was yet to open his account. The Indian skipper was hit on his front pad but replays showed the ball was going down the leg and fortunately for Kohli the umpire ruled out the loud appeals.
Earlier, in the fourth ball after lunch, Henry gave the breakthrough producing a beautiful out-swinger as M Vijay (7) once again became the Kiwi youngster's victim.
Cheteshwar Pujara (4), Shikhar Dhawan (17) got out LBW while Ajinkya Rahane (1) also could not click, mistiming the shot while trying to pull Henry.
Dhawan had an anxious stay at the crease and was hit twice on his thumb by Boult's rising deliveries.
India lead the three-match series 1-0 after their 197-run win in the Kanpur Test.