A cautious England have spared India the ignominy of a follow-on, but set them a daunting 420-run victory target in the opening test at Chennai's MA Chidambaram Stadium.
England, who had posted a mammoth 578 in the first innings, bowled India out for 337, but opted against enforcing the follow-on.
The tourists walked out to bat instead and were bowled out for 178 an hour before stumps, baffling many by their refusal to declare, which would have given them more time to bowl out India.
The hosts finished the penultimate day on 39/1, still 381 behind the target, with Shubhman Gill batting on 15 and Cheteshwar Pujara on 12.
"Obviously, we're ahead in the game," England bowling coach Jon Lewis says.
"We played some really good cricket in this game. We're confident that we can create enough chances to win the game tomorrow.
"I think we're in a really strong position."
Earlier, Washington Sundar led India's rearguard resistance with an unbeaten 85, before he ran out of partners.
The all-rounder added 80 runs with Ravichandran Ashwin in a spirited seventh-wicket stand to take India past the 300-mark, after resuming on 257/6.
Jack Leach bled 94 runs in 17 wicketless overs on day three, when Rishabh Pant smacked him for five sixes.
But the left-arm spinner finally tasted success, when he dismissed Ashwin for 31 and went on to claim the wicket of Shahbaz Nadeem (0) as well.
James Anderson also toiled without success, but claimed the last two Indian wickets, leaving Sundar stranded 15 runs from a maiden test century.
When England came out for their second innings, Ashwin dismissed Rory Burns with the very first ball and went on to claim 6/61, as England batted on with a safety-first approach.
Ishant Sharma dismissed Dan Lawrence to claim his 300th test wicket, before Joe Root, who had smashed 218 in the first innings of his 100th test, made 40, when Jasprit Bumrah trapped him lbw.
Ashwin then ran through England's batting order, dismissing Dom Sibley, Ben Stokes and Dom Bess, and finally removing Jofra Archer and James Anderson in the same over.
India lost opener Rohit Sharma early, with Leach spinning one past the bat to hit the off-stump.
Ishant says India, after chasing down 328 in their previous test against Australia in Brisbane, are optimistic about victory.
"It all depends how we start tomorrow," the paceman says. "If we get a good start, I'm sure that we can chase this down, because we have a fearless batting line-up.
"We're obviously very positive about this."