Rohit Sharma scored his first Test century outside India before England's Ollie Robinson took two wickets in the first over with the new ball on an enthralling day of fluctuating fortunes at the Oval on Saturday.
India, were 270-3 in their second innings when bad light ended the third day of the fourth Test, a sizeable 171 runs ahead after England's first innings 290.
The tourists were on the brink of batting England completely out of the game when home captain Joe Root took the new ball as soon as he could with India 236-1 off 80 overs.
From the very next delivery, Sharma, on 127, mistimed a pull off a Robinson ball that 'stayed' in the pitch, with Chris Woakes running round from fine leg to long leg to take the catch.
It was the end of an excellent second-wicket partnership of 153 in 46 overs between Sharma and Cheteshwar Pujara.
Five balls later, Pujara was out as well, his valuable 61 ending when he inside-edged Sussex seamer Robinson, via his thigh, to Moeen Ali in the slip cordon.
Befitting a see-saw five-match series locked at 1-1, India were now 237-3, with two fresh batsmen in captain Virat Kohli and Ravindra Jadeja, again promoted up the order ahead of the struggling Ajinkya Rahane, facing a rejuvenated England attack.
Soon afterwards, even though the floodlights were on, the umpires informed Root it was too dangerous for the quicks to continue to bowl.
Root bowled his own off-breaks and those of frontline spinner Moeen for a couple of overs before deciding he did not want to run the risk of India extending their lead. He effectively forced the umpires to take the players off the field for bad light.
Star batsman Kohli, without a Test hundred in nearly two years, was 22 not out at stumps and Jadeja unbeaten on nine.
Opening batsman Sharma may have been missed twice in the slips by Rory Burns but few would begrudge the 34-year-old his eighth century in 43 Tests and first in 25 overseas.
Having taken 145 balls to reach the slowest half-century of his Test career, Sharma expertly upped his tempo and needed just 59 more deliveries to complete a 204-ball hundred.
Sharma reached the landmark in style, lofting off-spinner Moeen for a superb six over long-on that accompanied 12 fours.
Meanwhile Pujara, fresh from his 91 in England's innings and 76-run win in the third Test at Headingley, provided excellent support after overcoming an ankle injury that required several minutes' on-field treatment.
India resumed on Saturday on 43-0 in overcast conditions that appeared to favour England's pacemen, albeit the pitch was a good one on which to bat.
Sharma, having seen an edge on six strike Burns on the boot at second slip, was 20 not out, with KL Rahul 22 not out.
England great James Anderson and Woakes, who had already taken 4-55 and scored exactly 50 in what was the Warwickshire all-rounder's first Test in over a year, opened the attack.
Sharma, who'd made two fifties earlier this series, including 83 during India's 151-run win in the second Test at Lord's, driving Anderson's sixth ball of the day down the ground.
England's fallible slip catching was evident again when Sharma, on 31, edged Robinson only for a diving Burns to floor a right-handed catch — the hosts' sixth drop of the match.
But Anderson, already Test cricket's most successful fast bowler, eventually took his 632nd wicket at this level when he had Rahul caught behind on review for 46 with a ball that nipped away off the seam to leave India 83-1.
While there was the odd false shot, Sharma and Pujara kept the runs coming against a wayward England attack missing the express pace of Jofra Archer and Mark Wood.
There were no 'nervous 90s' for Sharma, with a one-legged pull — a shot made famous by West Indies opening great Gordon Greenidge — for four off Anderson taking him to 94 before he reached three figures by going down the pitch to loft Moeen into the pavilion.