Ravichandran Ashwin took 5-67 as the tourists were bowled out for 255 to give up a first-innings deficit of 200.
Ben Stokes made 70 and Jonny Bairstow 53 in a sixth-wicket partnership of 110 before England lost their last four wickets for 30 runs.
India were reduced to 40-3, but Virat Kohli's unbeaten 56 took his side to 98-3 and a lead of 298.
At some point on Sunday, probably soon after lunch, England will begin the task of batting for a day and a half to save the game.
It will require a remarkable effort on a surface that is showing variable bounce and is likely to offer more than its current modest turn.
"If England had got 350 and taken more time out of the game, I could see a way out for them," said former England captain Michael Vaughan on Test Match Special.
"But they allowed India to be too far ahead. England will have to bat four and a half sessions to avoid going 1-0 down in the series - on a pitch that won't get any better."
Former England batsman Geoffrey Boycott
I thought that if England didn't play very well it could have been over very quickly, even today.
If today was a boxing match, England actually won it on points. But it really knocked the stuffing out of England yesterday.
Ex-England spinner Vic Marks
The damage was done yesterday - in one session. England have fought hard today, but if they get out of this it will be a monumental achievement.
Former England captain Michael Vaughan
Realistically, England will be thinking they need to bat 140 overs in the second innings to get away with a draw. I can't see how they can win. The draw is a possibility but it's very, very minute.
England's predicament was the result of a collapse of 4-29 on the second evening, a slump in which the tourists contributed to each wicket that fell.
On the third morning, the watchful and skilful combination of Stokes and Bairstow showed their team-mates the way, as well continuing their prolific 2016, both individually and as a partnership.
Bairstow, the leading Test run scorer of 2016, and Stokes, who averages 60, have added 772 as a partnership, more than any other pair in the world.
Wicketkeeper Bairstow overcame a knee injury sustained as he limbered up on the way to the middle before play and some early indecisive footwork to sweep and nudge his way to a 137-ball half-century, his slowest in Tests.
By the time he was bowled off his pads playing across a searing inswinger from Umesh Yadav, the aggregate number of runs added by England's sixth wicket in 2016 stood at 1,759, an England record for any wicket in Tests.
"The way Bairstow and Stokes played was terrific," said Boycott. "To intersperse defence and attack in the situation England were in means they deserve full marks."
Stokes also made his slowest Test half-century, from 108 deliveries, but was more assured than Bairstow, bar one sharp stumping chance to Wriddhiman Saha when he was on 21.
Reining in his attacking instincts, he patiently waited to cut the spinners and only showed aggression after Bairstow departed and the second new ball was taken, driving sweetly on the leg side.
While all-rounder Stokes offers so much to England with his bowling and fielding, his batting average in 2016 is behind only Bairstow and his 227 runs is the most for the tourists so far in this series.
"If he ever gets a niggle and can't bowl, he has to stay in the side as a batsman," said Vaughan.
After Stokes was given out lbw to Ashwin - he looked have got an inside edge but the ball was caught at silly point anyway - India ran through the tail.
Zafar Ansari inexplicably missed a Ravi Jadeja half-volley to be leg before and the unerringly accurate Ashwin pinned Stuart Broad and James Anderson with successive balls - Broad unable to review a delivery heading down the leg side.
India turned down the option of enforcing the follow-on in favour of condemning England to a demoralising evening in the field.
With the tourists requiring a special effort with the ball to have even the slightest chance of getting back into the match, hopes were raised when India were reduced to 40-3.
Broad, who has strained a tendon in his foot, had Murali Vijay held at gully off an inside edge via the thigh pad and then induced a nick behind from KL Rahul - both decisions the result of England reviews - before Anderson produced a beautiful inswinger to bowl Cheteshwar Pujara.
But India captain Kohli, on the back of 167 in the first innings, stalled the momentum of a valiant England bowling effort with batting more fluent than anyone else in the match.
Driving through the covers and down the ground, he added an unbroken 58 with Ajinkya Rahane and remains to lead India's charge on the fourth morning.
"Kohli is playing a different game," said Vaughan. "The pitch has done plenty - there's spin, bounce, reverse swing. This is where he shows his class - he stands out a mile. He has made it look very easy indeed."
'Virat has shown it can be done'
England wicketkeeper Jonny Bairstow on Sky Sports: "At the start of the day, getting within 200 having been five down was a reasonable effort from us. Tomorrow morning, we come back and hopefully we can get something out of the pitch early on.
"It will take a couple of special knocks but the way Virat has gone tonight shows that it can be done."
India spinner Ravichandran Ashwin: "I haven't had a five-wicket haul against England before. It was at the back of my mind but I wasn't concerned because I knew it would come if I kept doing what I have been doing.
"I thought Virat batted beautifully in what could have been a tricky situation. We are well-placed to push on tomorrow."
England were pushed further towards defeat on day three of the second Test against India in Visakhapatnam.