England 337 for 7 (Bairstow 111, Stokes 79, Roy 66, Shami 5-69) beat India 306 (Rohit 102, Kohli 66, Plunkett 3-55) by 31 runs.
In a clash of two heavyweights where the cricket was riveting and entertaining for the most part, India decided to put the handbrakes on the run chase once Hardik Pandya got out and eventually lost to England by 31-runs at Edgbaston on Sunday.
A century from opener Jonny Bairstow helped England get off to a flier and post a competitive 337/7 on a good surface, while India replied with a century from Rohit Sharma, but lack of big hits from the experienced MS Dhoni and Kedar Jhadav proved to be the difference in the end.
India were booed by their fans in the stadium after the match as they had five wickets in hand and still didn’t try to chase down the runs, especially when they had one of the best finishers in world cricket - MS Dhoni - at the crease.
The win however helps England get back to their fourth spot and they are in line for the semis again while this means that Sri Lanka are officially eliminated from the World Cup.
Bangladesh and Pakistan still have a chance of qualification if they can win their remaining matches but it could come down to net run-rate if England end up defeating New Zealand.
England won the toss and elected to bat first on a good surface especially after failing to chase in their last two games against Sri Lanka and Australia.
The returning Jason Roy, who had fully recovered from injury, teamed up with Bairstow, to see off the Indian opening bowlers - Jasprit Bumrah and Mohammad Shami - before starting to attack the slower bowlers.
They scored quickly and took the run rate to over seven runs per over, putting on 160-runs in 133 balls before a fantastic diving catch from Ravindra Jadeja dismissed Roy for 66.
Joe Root came in and teamed up with Bairstow to take the score past 200, as Bairstow reached his 8th ODI century and England looked set for a 350-400 run first innings total.
Indian captain Virat Kohli then brought back Shami into the attack and he once again delivered, taking the key wickets of Bairstow for 111 and England captain Eoin Morgan for one and England were 207/3 after 33.4 overs.
Root then found the in-form Ben Stokes with him and after being cautious initially, they started to play their shots before Root was gone for 44 trying to scoop Shami as he took his third wicket.
Stokes and Jos Buttler then counter-attacked and took England past 300 as Stokes reached another half-century, his third in three games and fourth in this World Cup.
But then Shami came back and took the wickets of Buttler (20 runs from eight balls) and Chris Woakes (7) in back-to-back overs to have his first five-wicket haul this tournament.
Bumrah then bowled a brilliant last over where he took the wicket of Stokes (79 from 54 balls) and conceded just three runs, and ended up with excellent figures of 10-1-44-1.
England had India on the ropes as opening bowlers Woakes and Jofra Archer maintained excellent lines and varied their pace,
This eventually had opener KL Rahul mistiming a shot and giving a simple caught and bowled chance to Woakes, who made no mistake and dismissed the opener for a nine-ball duck.
Virat Kohli and Rohit Sharma then tried to rebuild, but took a while before they started to play their shots.
India took less than 30 runs in the first 10 overs and that proved a pivotal point in the match as both batsmen started to accelerate afterwards.
The captain and vice-captain both reached their half centuries as the asking rate crossed eight.
Kohli, known to be a master at chasing, then played a poor shot to give his wicket away after scoring 66.
Rishabh Pant, making his World Cup debut then formed another partnership as Rohit reached his century, the third one this tournament, but he soon departed with India on 198/3.
Pandya and Pant then started to play more aggressively as the required rate crossed ten, taking 16 runs off a Woakes over.
But Woakes, who already took two wickets and was very economical in his first spell, taking three maidens, took a brilliant running catch at deep square leg to dismiss Pant for 32.
Pandya kept playing his shots as Dhoni joined him but the required rate increased close to 15 and Pandya was then out for 45, becoming Plunkett’s third wicket.
With 71 required off 30 balls, Dhoni and Jhadav then decided to take 9,5,6 and 7 off the next four overs, not playing with much aggression and just taking singles mostly to end up with 44 runs required to win off the last over - a mathematically impossible equation.
They scored 12 as Dhoni hit a six - the first one in the innings, to put things into perspective - to end the match on an anticlimax.
The win takes England on 10 points with one game left against New Zealand, who are on 11 points and third spot.
India remain on second spot with a good net run-rate and 11 points and Australia still are top, and the only team to have qualified with 14 points.
Pakistan drop down to fifth spot with nine points and Bangladesh remain sixth with seven points.
Bangladesh and Pakistan will be hoping for a New Zealand win against England to have a better chance of qualification for the semis.
- Only Sri Lanka’s Kumar Sangakkara has scored more centuries - 4 - than Rohit Sharma has with three tons, in a World Cup. Australia’s Mark Waugh and Matthew Hayden and India’s Saurav Ganguly are the other players to have scored three centuries in a World Cup.
- India’s 28/1 in the first ten overs of powerplay was the lowest team score this tournament. The previous lowest was 29/2 scored by South Africa against West Indies, and also by West Indies against India.
- Mohammad Shami’s five wicket haul took him to 13 wickets in just three games this tournament. He has the best strike-rate - 12 - among bowlers to have taken ten or more wickets.