England scored a comprehensive 119-run victory in their must-win match against New Zealand at Chester-le-Street on Wednesday.
Eoin Morgan's side scored 305-8 in their 50 overs as Jonny Bairstow top-scored with 106 and Jason Roy hit 60.
The tournament hosts then bowled out New Zealand for 186 to guarantee a top-four finish in the 10-team group stage.
England, who have never won the competition, are into the World Cup semi-finals for the first time since 1992.
As soon as the match was over, the commentators at ESPN Cricinfo began calculating what the semi final composition looks like, given today's win.
"Pakistan will need to beat Bangladesh by 316 runs at Lord's on Friday to oust New Zealand. That is, if they score 400, they need to keep Bangladesh to 84 or less. The exact margin will change depending on scores. It's not over yet!" they said.
Right at the outset the Kiwis got off to a shaky start, losing two wickets in the first 6 overs.
Opener Henry Nicholls (0) was dismissed for a duck in the first over by Chris Woakes. Martin Guptill (8) was removed in the sixth over after Jos Buttler took a single-handed catch — that was "as good a catch as a keeper has made in this tournament", according to The Guardian — on a delivery by Jofra Archer.
The Kiwis were thus reduced to 16 for the loss of 2 wickets after six overs.
Then, skipper Kane Williamson (27) and Ross Taylor (28) put up a partnership that fell three runs shy of 50 runs. They were dismissed within an over of each other, both getting run out.
James Neesham and Tom Latham rescued the side somewhat by putting up a steady partnership of 50 runs, before the former was bowled out by Mark Wood.
Colin de Grandhomme, Latham's replacement, was sent back cheaply by Stokes' ball, caught out by Joe Root at deep square. He added only 3 runs to the side's total.
England innings
After being thrashed by England's top order for about 30 overs, New Zealand were able fight back and restrict the host team at 305 for 8.
England, who were 194 for the loss of one wicket after 30 overs, could only score 111 in the last 20 overs and lost 7 wickets. Matt Henry, Trent Boult and James Neesham each picked two wickets in their 10-over spells. Mitchell Santner and Tim Southee bagged one wicket apiece, though the latter proved to be more expensive as he gave away 70 runs in his 9-over spell.
Despite the quick fall of wickets in the last 20 overs, England managed to put up a decent total, thanks to opener Jonny Bairstow, who struck 15 boundaries and a six in his destructive innings of 106 runs off 99 balls. The England opener paired up with Jason Roy (60), forming a crucial opening 163-run stand that led the host team to fire up to 104 runs in 15 overs.
After Roy was dismissed by Neesham in the 19th over, Bairstow formed a 71-run partnership with Joe Root (24).
Root was removed by Boult in the 31st over.
It was Henry who got New Zealand the breakthrough they were looking for when he put an end to Bairstow's fiery knock in the 32nd over. Jos Buttler followed Bairstow soon after, when he mistimed a shot driving it through mid-off where he was caught by New Zealand skipper Kane Williamson in the 35th over.
Ben Stokes (11), who has been in good form recently, was caught by Henry when he mistimed a shot on Santner's delivery. Chris Woakes (4) fell to Neesham in the 45th over when Williamson caught him at mid-off.
Henry struck again at the beginning of the 47th over to claim England skipper Eoin Morgan's (42). Adil Rashid (16) was bowled out on a yorker by Southee in the last over of the innings.
Speaking about his century after the innings, Bairstow said: "I'm really pleased obviously. There's been a couple of low scores in the competition as well. I felt like I needed to contribute with some runs. I'm disappointed not to go on with a big one but pleased to have got a hundred."
Toss
England had won the toss and chosen to bat.
While the winner heads to the playoffs, the loser will face a nervous wait until Friday when fifth-placed Pakistan get a final chance to climb into the top four.
English skipper Eoin Morgan said that pitch and overheads were the decisive factors, ESPNcricinfo reported.
"The pitches have got tougher, slower, lower as the match goes on, and it's a trend that the pitches haven't been as good as the last few years. It's a bit like a quarter-final, we train hard, play hard, today is what it's all about," he added.
Following the toss, New Zealand skipper Kane Williamson said that they too would have chosen to bat but "it's important to do a job".
Tim Southee and Matt Henry were in for the team. Ish Sodhi is sitting out the match along with fast bowler Lockie Ferguson, who has been ruled out due to a hamstring injury.
Ferguson has been one of the stars of the tournament for the Kiwis, taking more wickets than anyone other than Australia's Mitchell Starc with 17.
"Lockie Ferguson has a tight left hamstring and will miss today's match against England as a precaution," the New Zealand team said in a statement.
There's more at stake for England at Riverside Stadium, where the forecast is for unbroken play. They kept an unchanged squad for today's match.
The tournament hosts are in fourth place and only a point clear of Pakistan, which closes its group campaign against already-eliminated Bangladesh.
New Zealand are two points clear of Pakistan but have a much healthier net run-rate than the Kiwis. So just avoiding a heavy defeat against England should ensure the Black Caps cannot be shunted from the semifinal lineup.
England are looking to avenge an embarrassing eight-wicket loss to New Zealand at the 2015 World Cup, which captain Eoin Morgan described as the "rock bottom" moment of his career.
Line-ups:
England: Jason Roy, Jonny Bairstow, Joe Root, Eoin Morgan (capt), Ben Stokes, Jos Buttler (wk), Chris Woakes, Liam Plunkett, Adil Rashid, Jofra Archer, Mark Wood
New Zealand: Martin Guptill, Henry Nicholls, Kane Williamson (capt), Ross Taylor, Tom Latham (wk), James Neesham, Colin de Grandhomme, Mitchell Santner, Tim Southee, Matt Henry, Trent Boult