England put a ball-tampering row behind them to book their place in the semi-finals of the Champions Trophy with a 10-run win over New Zealand in Cardiff on Sunday.
New Zealand, chasing 170 for victory in a match reduced by rain to 24 overs per side, were held by the tournament hosts to 159 for eight.
Victory saw England, yet to win a major 50-over tournament, into the last four as one of two qualifiers out of Group A after their build-up for this match was overshadowed by ball-tampering allegations made against them by former captain Bob Willis.
If Sri Lanka beat champions Australia in Monday's final Group A fixture at The Oval they will also feature in a last four that already includes Group B winners India and runners-up South Africa.
New Zealand could yet reach the semi-finals themselves if Australia win but fail to do so by a large enough margin to better the Black Caps' net run-rate.
James Anderson, who finished with three wickets for 32 runs in five overs, reduced New Zealand to 14 for two by dismissing openers Luke Ronchi and Martin Guptill in the same over.
Medium-pacer Ravi Bopara, in overcast conditions assisting seamers, took two for 26 in five overs.
England captain Alastair Cook, the man-of-the-match, was dropped three times by Nathan McCullum on his way to top-scoring with 64 in a total of 169 all out.
Off-spinner Nathan McCullum finally clung on to a return offering from his own bowling to dismiss left-handed opener Cook.
This victory also meant England won their 'decider' with New Zealand after they triumphed 2-1 in a one-day series in New Zealand earlier this year before the Black Caps turned the table by the same margin in a series in England in the run-up to the Champions Trophy.
Kane Williamson kept New Zealand hopes alive with a 48-ball fifty completed when he struck Anderson for his seventh four before lofting Tim Bresnan for six.
Suddenly, New Zealand needed 36 to win off 18 balls with five wickets left. But Williamson then holed out off Stuart Broad for 67, although the paceman had a worrying few moments before a review for a tight no-ball call went in his favour.
And 135 for six became 140 for seven when Corey Anderson, making his one-day international debut, was caught by Anderson off Bresnan.
That left New Zealand 140 for seven and needing 30 to win off 10 balls.
Anderson wrapped up victory by having Nathan McCullum caught behind off the final delivery of the match.