Jos Buttler's 89 dragged England back into the fifth Test before the home bowlers took control of India on day two at The Oval.
Buttler shared 98 for the ninth wicket with Stuart Broad, who hung around for 98 minutes for his 38.
With Buttler also adding another 20 in the company of James Anderson, England turned their overnight 198-7 into 332 all out.
At 70-1, India were making comfortable progress until Sam Curran produced a beauty to bowl KL Rahul.
Anderson delivered a wonderful spell to remove both Cheteshwar Pujara and Ajinkya Rahane, and was also unfortunate not to have India captain Virat Kohli lbw.
Kohli moved to an ominous 49, only for Ben Stokes to induce edges from both the skipper and Rishabh Pant that left India 174-6, 158 behind.
Anderson's two wickets took him to 561 in Test cricket, three away from overtaking Australia's Glenn McGrath as the most successful fast bowler in the history of the game.
England already have an unassailable 3-1 lead in the series and are looking to send opener Alastair Cook into retirement with victory in his final Test.
Buttler has enjoyed a stellar spell since being recalled to the England Test team and is their leading run-scorer this summer with 199 more than second-placed Joe Root.
What has been so impressive is the way he has adapted his game to suit the circumstances. Here, he was patient, trusting of his lower-order partners and happy to take the runs India offered until the arrival of Anderson signalled some of Buttler's trademark hitting.
Buttler had overturned being given out lbw on the first evening and on Saturday morning extended his eighth-wicket stand with Adil Rashid to 33.
After Rashid was leg before to Jasprit Bumrah, India spread the field for Buttler in the hope of restricting his scoring and bowling more deliveries at Broad.
Instead, Broad was solid and Buttler mixed milking singles with the occasional cover drive until Broad was brilliantly caught at long-on by a diving Rahul off the spin of Ravindra Jadeja.
With Anderson for company, Buttler hoiked then hooked Bumrah for two sixes in an over before he was caught at slip to give Jadeja his fourth wicket.
India, the world number one side, have lost this series despite having wonderful opportunities to win the first and fourth Tests, both of which eventually went England's way.
Still, they showed no signs of being disheartened on the first day and a superb bowling effort looked to have given them a real chance of winning two Tests on a tour of England for the first time since 1986.
Instead, they once again failed to finish off England thanks to some lacklustre bowling and curious tactics.
The plan to drop the field to Buttler simply did not work and left skipper Kohli with nowhere to turn. Not only could the tourists not find a way past Broad, but Buttler was gifted runs.
It was another example of how the lower-orders have affected the outcome of this series - England's partnerships for the fifth, sixth, seventh, eighth and ninth wickets have outperformed India's.
And, when India came to bat, a promising start ended in the top order crumbling around Kohli.
Though Shikhar Dhawan fell cheaply to Broad, the aggressive Rahul and watchful Pujara were making comfortable progress against an England attack that struggled to find the movement enjoyed by India on day one.
Curran made the breakthrough with a wonderful delivery; one that shaped in and then nipped off the pitch to take Rahul's off stump.
From there, England exploited the gloom and the floodlights. Anderson was immaculate and was only denied an lbw against Kohli when the review showed the tightest 'umpire's call'. Anderson's reaction resulted in words from umpire Kumar Dharmasena.
Anderson did have Pujara caught behind and Rahane held at first slip, while debutant Hanuma Vihari was fortunate with two lbw shouts from Broad. One, given not out, would have been overturned had England opted to review, another that was given out was successfully reversed by the batsman.
The reprieved Vihari went on to 25 not out, adding 51 with Kohli, who looked imperious in nearing 600 runs for the series.
Stokes, though, arrived to swing the ball, with Kohli flashing to second slip and Pant prodding to first slip, leaving England in a dominant position.
Former England captain Michael Vaughan on TMS: "India had the better of day one, their seamers were outstanding and their intensity was fantastic.
"But this morning they looked like a side that were just letting the game drift. Virat Kohli sent the message from the first ball of the day, spreading the field to Jos Buttler. The initiative was lost."
BBC cricket correspondent Jonathan Agnew: "Jos Buttler is showing that he can play both types of innings for England down the order. He can dig in and help rebuild or capitalise on a good position.
"It was a brave call by Ed Smith to recall him on Twenty20 form but it's certainly worked and you have to credit Smith for that."