Sachin Tendulkar, who batted brilliantly, and Sourav Ganguly added 150 for the first wicket, setting up an enthralling finish.
Ganguly went for 53, slapping Stuart Broad to Kevin Pietersen at cover, and England were given hope as Paul Collingwood pulled off a superb catch to remove Tendulkar for 94 as he drove uppishly at Monty Panesar.
That hope was enhanced when Yuvraj Singh and Rahul Dravid fell cheaply. Gautam Gambhir followed for 47, but MS Dhoni and Robin Uthappa tipped the balance back towards India.
Robin Uthappa played a nerveless innings to guide India to a thrilling two-wicket win with two balls to spare in the sixth one-day international against England [Images] at The Oval in London [Images] on Wednesday.
Uthappa hit an unbeaten 47 that capped a brilliant collective batting performance and his innings helped India overhaul a challenging England target of 317 and level the 7-match NatWest Series 3-3.
The 21-year-old right-hander from Bangalore, who normally opens the batting, came in when India were 234 for 5 and needed another 83 from the last nine overs.
The youngster combined with Mahendra Singh Dhoni [Images] (35) to take the fight to the England camp, and despite the loss of his more illustrious partner, kept his cool to hit the winning runs in the final over.
Dhoni was bowled by Broad off the final ball of the 48th over to leave India needing 23 from the final 12 balls. That became 10 off the final over after Agit Agarkar was run out off the final ball of the 49th. Zaheer Khan was run out without facing a ball, but amid the chaos, Uthappa, who made an unbeaten 47, saw India home with two balls to spare. Shah's century, which took just 91 balls, was his first in one-day international cricket.
Pietersen chipped in with his first half-century of the series, while Luke Wright blasted a highly impressive 50 off 38 balls on his debut.
Mascarenhas then ham mered five sixes from the final over. Only two men, Herschelle Gibbs and Shahid Afridi, have ever scored more off a single over in ODIs.
England had seemed in trouble at 137-5 when Pietersen became the second of three run-outs in the innings.
The first, that of captain Collingwood, was highly controversial as he seemed to have been given not out before a replay on the bigscreen persuaded umpire Peter Hartley to refer the decision to the third umpire.