England have kept their Cricket World Cup hopes alive, beating India by 31 runs in their group game at Edgbaston and handing the visitors their first defeat of the tournament.
Set a commanding 338 runs for victory, India started well, with opener Rohit Sharma scoring a fine 102 runs and captain Virat Kohli scoring his fifth consecutive half-century.
But faced with a climbing run rate in the final overs, India kept losing wickets at key intervals and finally ended their chase at 306/5.
Earlier, Jonny Bairstow smashed a belligerent 111 and Jason Roy returned from a hamstring injury to feature in the tournament's highest opening stand, and power England to a commanding 337/7.
Mohammed Shami (5/69) was the pick of the Indian bowling attack, but Ben Stokes (79) provided the late assault to help England get close to the 350 mark.
The win moves England to fourth on 10 competition points and means the Blackcaps must beat the host nation on Wednesday to secure their place in the World Cup semi-finals.
"It's been frustrating a little bit for the guys, we know how well we can play," Bairstow said, after collecting his man-of-the-match award.
"But today, we were pretty good with bat, ball and in the field.
"It was the closest to a complete performance we've had in the competition, but we also know we've got three must-win games in this World Cup up next."
If New Zealand lose to England, they will hope that Pakistan don't beat Bangladesh by enough to finish on a higher net run rate.
Join us for live updates of the Blackcaps v England Cricket World Cup clash from 9:30pm Wednesday