World Cup match was played at Edgbaston, Birmingham
A spirited England ended India's unbeaten run in the 2019 International Cricket Council (ICC) World Cup with a 31-run victory in a high-scoring group match to boost their semi-final prospects on Sunday.
England opener Jonny Bairstow smashed a belligerent 111, Jason Roy returned from a hamstring injury to make 66 and all-rounder Ben Stokes (79) provided the late burst in England's commanding 337-7 after electing to bat on an Edgbaston featherbed.
India opener Rohit Sharma smashed his third hundred of the tournament and India skipper Virat Kohli his fifth successive half-century but India did not get another significant partnership and finished on 306-5.
England leapfrog Pakistan to fourth place with 10 points from eight games, while India remain second on 11 from seven matches.
The hosts missed opener Roy particularly in their back-to-back defeats by Sri Lanka and Australia which had jeopardised their semi-final prospects.
The 28-year-old made an instant impact on his return, forging the tournament's highest opening stand with Bairstow and both survived some torrid moments before tearing into the Indian attack during their 160-run stand.
Bairstow nearly deflected a couple of inside edges on to the stump and Roy got a caught-behind reprieve on 21 when he gloved Hardik Pandya. The umpire, however, declared it wide and the Indians deliberated for a while before deciding against reviewing the decision in front of an anxious crowd of predominantly India fans.
England reached the 150 mark in the 21st over and it took a stunning catch by substitute fielder Ravindra Jadeja in the deep to send back Roy.
Bairstow brought up his eighth ODI century off 90 balls, celebrating by dropping his helmet, stretching out his arms and soaking in the applause.
Mohammed Shami (5-69) returned to end Bairstow's 109-ball blitz which included six sixes and 10 boundaries.
India managed to stem the boundary flow in the 30-40 over period, when they conceded only 43 runs while claiming two wickets.
Stokes clobbered three sixes and six boundaries in his blistering knock before Jasprit Bumrah dismissed him in the final over. India, clad in their away orange-and-blue jerseys, wobbled early in their chase.
Chris Woakes began with three maiden overs, catching the scoreless KL Rahul off his own bowling in his second. India could have been in a deeper crisis but Root, who made 44 with the bat, spilled Rohit, then on four, at slip off Jofra Archer.
Rohit went on to stitch a 138-run partnership with Kohli, the duo frustrating the English attack with their risk-free accumulation. Kohli duly brought up his half-century but once again fell short of a hundred, slicing Liam Plunkett (3-55) to backward point.
Rohit could not be denied his 25th ODI century but he fell to Woakes after making 102 which included 15 boundaries. Rishabh Pant made 32 in his World Cup debut and Hardik Pandya chipped in with a 45-run cameo but Mahendra Singh Dhoni, who made 42 not out, failed to do justice to his reputation as a 'finisher'.