Alastair Cook marked his final England innings with a "dream come true" hundred before James Anderson became the joint most successful fast bowler in Test history by sparking an India collapse at The Oval on Monday.
Cook made 147 and Joe Root, his successor as England captain, 125 as the hosts piled up 423-8 declared in their second innings of the fifth Test.
Anderson then had both Shikhar Dhawan and Cheteshwar Pujara plumb lbw as India, needing 464 for an unlikely win, slumped to 1-2 in reply.
That double strike meant Anderson had equalled Australia great Glenn McGrath's mark for the most Test wickets taken by any fast bowler of 563.
India captain Virat Kohli, a thorn in England's side with 593 runs this series, was then caught behind for a first-ball nought off Stuart Broad to leave the tourists reeling.
At stumps, India - already 3-1 down in this five-match series - were heading for defeat at 58-3, despite Lokesh Rahul's gutsy 46 not out, with no side having made more in the fourth innings to win a Test than the West Indies' 418-7 against Australia at St John's, Antigua in 2002/03.
The day belonged to Cook, 33, who is retiring from international cricket after this match.
"Sometimes dreams come true," Cook told Sky Sports. "It’s one of those days where you will look back and forever go ‘Wow!'".
The Essex left-handed opener, who made 104 not out on debut against India at Nagpur in 2006, became just the fifth player to score a hundred in both their first and last Tests after Australia's Reggie Duff, Bill Ponsford and Greg Chappell and India's Mohammad Azharuddin.
England resumed on 114 for two, 154 runs ahead, with Cook 43 not out and Root unbeaten on 29.
A capacity crowd, willing Cook to score a hundred following his first-innings 71, gave him the first of several standing ovations as he walked out to bat on a sunny morning.
And he soon had another when Cook, from his second ball of the bay, turned fast bowler Jasprit Bumrah legside for four to go to fifty.
Cook, batting as fluently as he'd done for several years, later cut left-arm spinner Ravindra Jadeja for another well-struck boundary.
But Root was reprived on 46 when an edge off Jadeja was dropped by Ajinkya Rahane at slip.
It was another blow to an India side handicapped by the loss of fast bowler Ishant Sharma, who bowled just eight overs in the innings before succumbing to an ankle injury.
Cook, about to become a father for the third time, was already England's leading Test run scorer and century maker, with this match seeing him extend his national appearance record to 161 Tests.
He completed his 33rd Test century in unusual fashion when, having run a single to go to 97, a wild overthrow from Bumrah gave him four bonus runs.
This was Cook's first Test hundred since a marathon 244 against Australia at Melbourne in December.
"It has been one of those 'don't get out for nought' games for me," he said. "The standing ovation I got walking out this morning, [I said] 'you've got to score a couple at least' or it would have been embarrassing."
Root, 92 not out at lunch, was dropped on 94 by first slip Pujara, perhaps distracted by diving wicketkeeper Rishabh Pant, off Shami.
A quick single saw an elated Root to his first Test hundred since he made 136 against the West Indies at Edgbaston in August 2017.
But with the England captains past and present in command while sharing a third-wicket stand of 259, they both fell in successive balls to part-time off-spinner and Test debutant Hanuma Vihari.
Root saw a slog-sweep held in the deep and, with the batsmen having crossed, Cook faced the next ball only to be caught behind by Pant edging a cut.
It was the end of a near six-and-a-half hour innings of 286 balls including 14 fours.
Once more spectators were on their feet, Cook bowing out with a record of 12,472 Test runs, including 33 hundreds, at an average of 45.35.
The day's play ended with Cook fielded the ball at short leg, prompting yet more cheers.
"Even at the end fielding at short leg with the Barmy Army singing, it’s why you play sport...It was very special," he said. "It's just been a great week."
Virat Kohli's Asia Cup absence could help Indian revival, says Kapil Dev
Chance for Alastair Cook to end Test career with hundred at The Oval
Retiring Alastair Cook hopeful equation with Kevin Pietersen will heal over time
Ian Oxborrow: Alastair Cook's retirement feels like the death knell for Test cricket