New Zealand will face India in the final of the Champions Trophy after defeating South Africa by 50 runs in the second semi-final on Wednesday.
Electing to bat, New Zealand racked up a tournament record 362-6, powered by centuries from Rachin Ravindra (108) and Kane Williamson (102) at the Gaddafi Stadium in Lahore.
Daryl Mitchell (49) and Glenn Phillips (49 not out) also made vital contributions.
In reply, South Africa could only manage 312-9, with David Miller (100 off 67) completing his century on the final ball of the match, while Rassie van der Dussen (69) and Temba Bavuma (56) struck half-centuries.
New Zealand skipper Mitchell Santner used seven bowlers but led by example with a match-turning 3-43.
The final will be played on Sunday at the Dubai International Cricket Stadium.

Jordan qualifies for the FIFA Arab Cup final
Sharjah Warriorz make it two in two with 11-run win over Gulf Giants
Bournemouth rescue draw with Man United in eight-goal thriller
Morocco beat UAE to reach FIFA Arab Cup final
Mid East Falcons win inaugural United Series Championship in Dubai