Hosts England advanced to the Champions Trophy semi-finals on Sunday after defeating New Zealand by 10 runs in a rain-reduced Group A match in Cardiff which looked likely at one stage to end in a washout.
Steady rain fell for most of the day after New Zealand won the toss and elected to field but it eventually cleared in the middle of the afternoon to allow time for a 24 overs a side match.
New Zealand, set 170 to win after dismissing England for 169 with three deliveries to spare, lost early wickets against some excellent pace bowling in the damp conditions.
Kane Williamson revived their hopes with 67 from 54 balls, adding 73 for the sixth wicket with debutant Corey Anderson (30), but England held their nerve and the rain held off.
The remaining semi-final place will be decided by the final Group A match between Australia and Sri Lanka at the Oval on Monday. India and South Africa are the qualifiers from Group B.
England captain Alastair Cook profited from three dropped catches by Nathan McCullum to top score with 64 from 47 balls, including two straight sixes.
He also played an adroit scoop shot to fine leg for four, a shot not normally seen in his repertoire.
Cook received good support from Joe Root (38) who pulled the first six of the day off Daniel Vettori.
The veteran left-arm spinner, who bowled with his customary accuracy and skill, had an lbw decision against the young Yorkshireman turned down after a review showed a thin inside edge on to the pad.
However, he then dismissed the dangerous Eoin Morgan (15) lbw to finish with the excellent figures of one for 27 off his five overs.
McCullum finally held on to a chance off Cook, gratefully accepting a return chance of his off-spin bowling. He had earlier caught Jonathan Trott (8) and took two more in the deep to finish with four overall.
The remaining middle-order England batsmen could not get going and medium-pacer Kyle Mills dismissed Stuart Broad and James Tredwell for ducks to finish with four for 30.
Luke Ronchi, a former Australia one-day wicketkeeper who is now playing for his native New Zealand, again looked horribly out of touch in his role as opening batsman.
He made only two from 12 balls when he was caught on the third man boundary swiping at James Anderson, who then bowled Martin Guptill for nine.
The team's most accomplished batsman Ross Taylor was lbw to Tim Bresnan for three and wasted New Zealand's only review when the television replay confirmed that ball would have struck the stumps.
He was followed into the pavilion by captain Brendon McCullum (8), who struck Ravi Bopara low and hard to deep square-leg where Root took an excellent catch diving forward.
Kane Williamson responded with the best innings of the day, finding a resolute partner in Corey Anderson, who was making his one-day international debut as a replacement for the injured Tim Southee.
Williamson took a six and a four in a Bresnan over which cost 19 runs but was then caught in the deep by James Anderson, who took another catch to dismiss Corey Anderson.