New Zealand returned to winning ways at the World Cup following a four-match slump as they defeated Sri Lanka by five wickets in Bengaluru on Thursday and all but secured their place in the semi-finals.
Opening batsmen Devon Conway (45) and Rachin Ravindra (42) got fourth-placed New Zealand's chase of 172 off to a fast start and Daryl Mitchell (43) took them close before they crossed the finish line in 23.2 overs.
Victory left New Zealand on 10 points - in pole position to claim the last semi-final spot and join India, South Africa and Australia.
Pakistan will now need to beat England by an almost impossible margin to leapfrog New Zealand on net run rate.
Afghanistan, who also had slim hopes of qualifying for the knockouts, find themselves in a similar position as their Asian neighbours before their clash with South Africa.
"Really good performance," said New Zealand skipper Kane Williamson. "The early wickets and spin was a challenge through those middle overs. The pitch really slowed down later.
"The guys showed some good intent later with the chase, so great performance overall. We thought there was going to be some weather later but there wasn't any. Hard to read such things."
Earlier, seamer Trent Boult and off-spinner Mitchell Santner landed timely blows as Sri Lanka limped to 171 all out after an early blitz by Kusal Perera (51) and a defiant late effort by Maheesh Theekshana (38 not out).
"Nice to get a bit of success at the top. A must-win game, the pleasure is about getting the result," said man-of-the-match Boult, who went past 600 international wickets.
Barring an unlikely miracle in Pakistan's last game, New Zealand will take on hosts India in the semi-finals.
"Everyone wants a piece of the strong home nation," Boult said. "We're looking forward to it. It'll be exciting to face India in the semi-finals. They're playing phenomenal cricket."
Williamson's decision to bowl after winning the toss paid off early, as Boult (3-37) and Tim Southee (1-52) tore through the Sri Lanka top order to leave them in some trouble at 32-3 inside five overs.
Perera, who was dropped on zero by Tom Latham in the second over, punished New Zealand with a 22-ball fifty but lost another partner when Boult trapped Charith Asalanka lbw to turn up the heat on the 1996 champions.
A fit-again Lockie Ferguson (2-35) struck in his second over to dismiss the aggressive Perera as Sri Lanka collapsed to 70-5 and eventually folded in the 47th over for a modest total after Santner (2-22) and Ravindra (2-21) joined the party.
Santner curtailed Sri Lanka during a crucial phase of the innings and removed Angelo Mathews (16) and Dhananjaya de Silva (19) before Theekshana and Dilshan Madushanka (19) frustrated New Zealand with a 10th-wicket stand of 43.
"In the first 10 overs, we lost three-four wickets and struggled with the bat," said Sri Lanka captain Kusal Mendis, after his side dropped to ninth.
"If we had a good partnership in the middle overs, we could have had 300-plus on this wicket."