London: Alastair Cook marked his 291st and final Test innings in fairytale fashion with a century as England closed in on victory over India on the fourth day of the fifth Test on Monday.
The 33-year-old scored 147 in a 259-run third wicket partnership with skipper Joe Root as England moved on from 114-2 to 423-8 declared.
Cook, England's most-capped Test player and highest run scorer, was given numerous standing ovations from the crowd who flocked to the historic Oval ground, the longest and loudest when he completed his 33rd Test century before lunch.
His 286-ball knock, which included 14 fours, helped Cook climb to fifth on the all-time list of Test run scorers.
Root weighed in with 125 from 190 balls as he returned to form with his first Test century for a year.
Root and Cook were dismissed in consecutive balls by part-time off spinner Hanuma Vihari and a flurry of wickets went down as England looked to top up their total for a declaration.
Set a notional 464 for victory India lost their first three wickets for two runs with James Anderson removing Shikhar Dhawan and Cheteshwar Pujara lbw in his second over.
When Stuart Broad removed Indian run machine Virat Kohli for a golden duck India were in disarray.
Anderson, 36, needs one more wicket to surpass the 563 of Australia's Glenn McGrath and become the most successful fast bowler in Test history.
India, looking demoralised as their hopes of salvaging a consolation victory from a losing series evaporated, steadied the ship somewhat to end the day on 58-3.
Opener KL Rahul played some attractive shots to reach 46 at the close with Ajinkya Rahane on 10.
Despite Anderson's late burst, the day belonged to Cook and the final overs were played out to a chorus of fans chanting the name of England's most prolific batsman.
With 218 runs in his 161st match Cook guaranteed he will retire with a Test average of 45.
And, fittingly, his final contribution for his country with the bat was a century against India -- the team he scored a debut ton against 12 years ago in Nagpur.
His total of 12,472 Test runs puts him behind only India's Sachin Tendulkar, Australian Ricky Ponting, South Africa's Jacques Kallis and India's Rahul Dravid on the all-time list.