At close of play on day three, the hosts were comfortably placed 227 for eight, effectively 339, thanks to a 112-run lead.
Gutsy fifties from Cheteshwar Pujara and Ajinkya Rahane helped India reach 239 for seven in the second test against New Zealand after a see-saw opening day Friday.
The rescue was led by a 60-run eighth-wicket partnership between Jeetan Patel and B-J Watling.
After India were dismissed shortly before lunch, the home side's seamers did all the early damage as New Zealand staggered to 85 for four in their first innings before rain forced an early tea break.
The recalled Patel was a revelation, considering the circumstances in which he last batted in 2013, cowering against South Africa's pace bowling venom. Bhuvneshwar Kumar (5/48) was the most successful Indian bowler. Murali Vijay too could not last long as departed in the 12th over for 9 runs and skipper Virat Kohli (9) too was back into the pavilion by the end of 22nd over with India reeling at 46 for 3. He eased to 47, before miscuing a lofted drive off Ravi Ashwin. Ashwin and Ravindra Jadeja chipped in with a wicket each. The first six overs yielded 29 runs for New Zealand, mostly coming from the bat of Patel.
Patel placated the pitch on his way to nine boundaries, including five driven through the offside.
India lost four star batsmen cheaply, with Henry claiming three of them. He could not capitalise, adding no subsequent runs. But Rohit showed a mastery over the situation that has largely eluded him in whites, not being tempted into going for rash shots and batting with control. His grimace was understandable when he misjudged a Shami in-swinger and had his back pad all but riveted to the stumps on 25. The spinner in the same over then accounted for Jadeja's (6) wicket.
49ers offense stalls after fast start in loss to Cowboys
NaVorro Bowman appeared to suffer a possible season-ending Achilles tear in the second half, although nothing has been confirmed. San Francisco targeted the trenches in the first round by taking defensive lineman DeForest Buckner and guard Joshua Garnett.
Henry struck again in his sixth over with a lovely delivery which angled into Murali Vijay (nine) and seamed away, kissing the shoulder of the bat before nestling in wicketkeeper BJ Watling's gloves. It raised an inevitable question which will be relevant today: can the same application occur further up the order?
Bhuvneshwar Kumar started the proceedings for India on Day 3 and Patel hit him past the diving fielder at mid-off for a boundary.
"There is something in the surface throughout the day, not just in the morning or in the evening. you can't go too forward nor sit back" he said.
The New Zealand side arrived in India as the underdogs and, to equalise the scales, could have done with some luck.
Meanwhile, New Zealanders with paceman Trent Boult said that the energy- sapping weather in Kolkata has severely tested the visitors.
Recalling Trent Boult's delivery that rose suddenly and injured Shikhar Dhawan's left thumb, Rohit said: "You have to make sure you are balanced and play as late as possible". The knocks required urgent treatment after he wrung the glove frantically to mitigate the pain.
Boult and Matt Henry, who took 3 for 44, lived up to that initially with hostile initial spells that had India in trouble, and Boult said the team had been determined to not let how behind they were affect the way they went about things.