Rohit Sharma smashed 161 while India's other top-order batsmen fell cheaply, helping the home side build to 300-6 on the opening day of the second match against England at Chennai's MA Chidambaram Stadium on Saturday.
At 86-3, India looked to have thrown away any chance of batting themselves into a strong position on a pitch where runs are going to be harder to come by as the match progresses.
But Rohit's 162-run partnership with Ajinkya Rahane dragged the hosts back into the contest, before England dismissed both in the final session.
Rishabh Pant was batting on 33 at stumps, with debutant Axar Patel on five at the other end.
"On this wicket, 350 will be a pretty good score. We still have four wickets and I'm sure they'd try to bat as long as possible," Rohit told a video conference.
"I'm little disappointed to get out like that but happy that the team is in a good position."
Earlier, Olly Stone had dismissed opener Shubman Gill for a duck with his third delivery after India captain Virat Kohli had elected to bat.
Rohit added 85 runs with Cheteshwar Pujara to steady the innings, but spinners helped England reclaim control with two quick wickets before the lunch break.
Pujara made 21 before edging Jack Leach to slip, and in the next over Moeen Ali marked his test recall by spinning one through Kohli's defence to clean bowl the India captain for a duck.
Kohli initially stood frozen in disbelief, his dismissal illustrating just how spin-friendly the track is.
After the opening test was played behind closed doors, 15,000 fans were allowed back in the stadium, and Rohit gave them plenty to cheer about.
The opener pulled Ben Stokes for a six and hit Moeen over the long-off ropes en route to scoring 100 of India's first 147 runs.
Rohit and Rahane denied England a wicket in the second session, but both then fell to spinners after tea.
Rohit, who smashed 18 fours in his knock, slog-swept a Leach delivery to Moeen, who also bowled Rahane for 67.
"It was a hard-fought day, I think we have to be quite patient," Leach said.
"We got a couple of wickets towards the end, which is obviously good. With that new ball, hopefully tomorrow morning we get a couple of quick wickets and get back."
Beaten by 227 runs in the first match of the four-test series, India dropped Washington Sundar and Shahbaz Nadeem, while resting Jasprit Bumrah for the match.
All-rounder Patel made his test debut while left-arm wrist-spinner Kuldeep Yadav and quick Mohammed Siraj were recalled.
England made four changes, with wicketkeeper Ben Foakes, seamer Stuart Broad, spin all-rounder Moeen and quick Stone drafted in to replace Jos Buttler, James Anderson, Dom Bess and the injured Jofra Archer.