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.

Alcaraz says uncertainty over comeback fuelled 'intrusive thoughts'
Man City cruise to 4-1 win over Palace
England dismiss Pakistan for 110 to seize control of Lord's test
Raphinha, Fermin score as Barcelona beat Athletic in home opener
Celtic and Rangers to play cup match behind closed doors after pitch invasion