Joe Root (100) hit a second successive century, while Eoin Morgan (88) smashed an unbeaten half-century as the duo shared a match-winning unbeaten 186-run unconquered stand to script a successful runchase on a track which seemed to have eased out later in the day.
Openers James Vince (27) and Jonny Bairstow (30) earlier gave England a good start, amassing 43 in 4.4 overs.
With this win, England exacted revenge for their 1-2 loss against India in the Twenty20 series. This is also the first victory for England in limited over cricket over India since 2011.
Earlier, skipper Virat Kohli cracked a strokeful 71 before England dished out some disciplined bowling effort to restrict India to a modest 256 for 8.
Kohli scored 71 off 72 balls, inclusive of eight fours, but the Indian innings faltered in face of some quality spin bowling by Adil Rashid, who snapped 3 for 49 to hurt the middle order.
Left-arm medium-pacer David Willey (3/40) also claimed three wickets to contribute to his team.
Kohli forged a 71-run partnership for the second wicket with Shikhar Dhawan (44) but after the duo were dismissed under-fire Mahendra Singh Dhoni scored 42 off 66 balls to shepherd the innings in the latter half.
Tailender Shardul Thakur (22) then blasted a 13-ball 22 with the help of two sixes to take India across the 250-mark.
First Published: July 18, 2018, 12:29 AM IST