England survived to live another day as they outbatted India in a high-scoring World Cup encounter to record a 31-run win at Edgbaston and keep their semi-final hopes alive.
Opener Jonny Bairstow's hundred (111 off 109 balls) set the platform and a cavalier 54-ball 79 by all-rounder Ben Stokes took England to an imposing 337 for 7 in 50 overs after batting first, neutralising the spin duo of Yuzvendra Chahal and Kuldeep Yadav with some heavy-duty hitting.
The total proved to be good enough as Rohit Sharma's (102) 25th ODI hundred and skipper Virat Kohli's (66) fifth consecutive half-century could only take India to 306 for 5 as England captain Eoin Morgan rotated his bowlers effectively at the death.
England, now on 10 points, will need to beat New Zealand in their last game to qualify for the semi-finals while India (11 points from 7 games) will need to win at least one of their remaining two games -- against Bangladesh and Sri Lanka -- to seal the last four spot.
India's defeat on Sunday will also make Pakistan's (9 points from 8 matches) chances of qualifying for the semi-finals a tad difficult.
Chris Woakes (2/58 in 10 overs) and Liam Plunkett (3/55 in 10 overs) were steady and impressive but it was Jofra Archer's (0/45 in 10 overs) extra pace that the Indian middle-order, including the hard-hitting Hardik Pandya (45 off 33 balls), found difficult to negotiate.
And when Hardik found it difficult, Mahendra Singh Dhoni (42 not out off 31 balls) with his waning power-hitting abilities could not have done better against Archer even though he gave a better account of himself compared to the previous games.
Just as has been the case during this World Cup, Dhoni again got booed by the capacity crowd.
Archer, who bowled fast and full with occasional slower deliveries, had 33 dot balls to his credit.
The difference between the two sides was the number of sixes that England batsmen hit during their innings. Compared to 13 sixes by England, India managed a single six in their entire 50 overs.
KL Rahul (0) did not have the measure of Woakes as he was out for a nine-ball duck, bringing Kohli and Rohit together. They were cautious till the 15th over before opening up against Adil Rashid and Ben Stokes, hitting the duo for a flurry of boundaries.
While Kohli reached his fifth successive half-century of the tournament, it was Rohit who dominated the bowling after reaching his own half-ton.
Their 138-run stand ended when Kohli's slash drive off Plunkett was pouched by substitute fielder James Vince at point.
Rohit and young Rishabh Pant (32 off 29 balls) added 52 off 48 balls and the Indian vice-captain also reached his 25th ODI hundred in the process. However, his innings ended as Woakes got him first ball off his second spell, caught by Jos Buttler.
Pant tried his short-arm pull-shot off Plunkett and was brilliantly caught by a diving Woakes in the deep as Dhoni joined Pandya.
Ton-up Jonny Bairstow's scathing attack on spin twins Yuzvendra Chahal and Kuldeep Singh headlined a dominant English batting performance, leaving India with a tough 338-run chase in a World Cup encounter in Birmingham on Sunday.
Bairstow (111 off 109 balls), along with fit-again Jason Roy (66 off 57 balls), added 160 for the first wicket on a track where Kuldeep (1/72 in 10 overs) and Chahal (0/88 in 10 overs) had a forgettable day.
Ben Stokes (79 off 54 balls) then used the platform to give the total an imposing look in a do-or-ie game for the hosts.
Mohammed Shami (5 for 69) got his maiden five-wicket haul but even he was taken to the cleaners in the last two overs.
Jasprit Bumrah (1/44 in 10 overs) was amazing as ever, being the only Indian bowler to finish with a sub-5 economy rate and the only maiden of the innings.
Bairstow, who stoked a controversy by taking an indirect dig at former England skippers Michael Vaughan and Kevin Pietersen for their criticism, channelized his anger in a positive manner scoring his eighth ODI hundred.
Chahal and Kuldeep were hit for 12 fours and as many as nine sixes as they hardly got any purchase from the Edgbaston track. Incidentally, Sunday's pitch was not the one which was used during Pakistan's game against New Zealand where Kane Williamson's part-time off-breaks turned right angles.
The two spinners, who have been India's trump card were read well by Bairstow and Roy, who did not play like some of the other batsmen in the tournament have played them.
From the start, they used big strides to reach to the pitch of the deliveries and smothered the spin for the big hits. If Bairstow targeted the arc between long-on to deep mid-wicket, Roy hit the straighter sixes.
In the second Powerplay with the field spread out, one shot that England batsmen used to good effect was the reverse sweep as they exploited the short boundary on one side.
It took an impressive diving effort from substitute fielder Ravindra Jadeja in the deep to dismiss Roy off Kuldeep in the 23rd over but the platform was set by then.
Bairstow lost a bit of sting after Roy's dismissal and finally was out for 111 that had 10 fours and half a dozen sixes.
Joe Root (44 off 56 balls) dropped anchor during a 70-run stand before getting out as Stoke hit six fours and three sixes to boost the total.