England kept their hopes of reaching the World Cup semi-finals in their own hands following a 31-run win over India at Edgbaston.
Jonny Bairstow blazed his maiden World Cup century, striking 10 fours and six sixes, in his blistering 111 off 109 balls, sharing an impressive 160-run opening stand with the returning Jason Roy (66).
Indian seamer Mohammad Shami produced a brilliant middle-overs spell of 2-3 from three overs to temporarily derail England's big hitting but Ben Stokes smashed 79 off 54 balls to set India a daunting 338 for victory.
Despite losing KL Rahul for a duck, India's chase looked on course as Rohit Sharma (101) and Virat Kohli (66) shared a 138-run second wicket partnership but middle-over specialist Liam Plunkett (3-55) removed the India captain to break the partnership.
Sharma completed his third hundred of the World Cup off 106 balls but was caught behind off Chris Woakes three balls later and World Cup debutant Rishabh Pant (32) departed to a fine catch in the deep three balls later as England restricted India to 306-5.
The victory moved England back up to the fourth, the final semi-final spot, in the World Cup table with 10 points - one ahead of Pakistan.
Eoin Morgan's side are one point behind New Zealand on 11 points, and England can seal their progression to the knockout stages of the tournament with a win over the Black Caps in their final group game in Durham on Wednesday, July 2 - live on Sky Sports.
Returning Roy allows England to flourish
The reintroduction of Roy at the top of the order saw normal business resume for England as the rejuvenated batting line-up saw the openers put on 47 runs in the first 10 overs.
The introduction of Hardik Pandya in the 11th over should have cost Roy his wicket when the 28-year-old gloved the all-rounder behind but when the umpire called a wide, India opted not to review - replays providing conclusive evidence that it had flicked the England batsman's apparel on the way through to wicketkeeper MS Dhoni.
Roy used his slice of fortune to tee-off, smoking his first six way over long-off as he and Bairstow pummeled 98 runs between overs 11-20, each bringing up their half-centuries to pile the pressure on Kohli's side.
A spectacular catch by substitute fielder Ravindra Jadeja ended Roy's entertaining innings of 66 from 57 balls but Bairstow reached his century from 90 balls as England motored on.
However, having reached three figures Bairstow was tied down and a brilliant second spell from Shami dragged India back in the match - the seamer having England's opener caught at deep point for 111 before a top-edge off a short ball saw the end of captain Eoin Morgan (1).
With England beginning to look like they may fall short of the big total that the early hitting promised, Stokes counter-attacked brilliantly smoking six fours and three maximums to push the hosts past 300.
Jasprit Bumrah's exceptional death-overs spell of 1-26 from five overs, which accounted for Stokes (79 off 54 balls), saw England close on an imposing 337-7.
Plunkett provides middle-over masterclass
Facing their highest ever World Cup chase, India and Sharma were gifted a break in the second over of the match after Root spilled a simple catch at second slip when the Indian batsman was on four.
However, England were not made to wait long to pick up their first scalp as Chris Woakes (2-58) took a fine low return catch to dismiss KL Rahul for a nine-ball duck.
While Sharma lacked fluency at the beginning of his innings, captain Kohli continued to make batting look easy as he struck his fifth successive half-century in the World Cup.
But, Kohli gifted his wicket to the recalled Plunkett - preferred by England to the spin option of Moeen Ali - steering a length ball straight to backward point and Woakes then returned to snare centurion Sharma as England gained a stranglehold on India's chase.
The vibrant Pant made a quick-paced 32 off 29 ball in his first World Cup appearance but Plunkett removed the 21-year-old and Pandya (45) as India's chase faltered in the face of steeply-rising run rate.
Dhoni's innings proved curious once more, making just 41 off 30 balls, as India hit just three boundaries in the final four overs - limping to 306-5.
Despite their first loss of the tournament, the two-time World Cup champions remain second in the table on 11 points and a win against Bangladesh on Tuesday at Edgbaston will secure their last-four place.
Watch every game of the Cricket World Cup live on Sky Sports, continuing with Sri Lanka vs West Indies from 10am, Monday on Sky Sports Cricket World Cup.