New Zealand's Grant Elliott struck the premier South Africa strike bowler Dale Steyn for six on Tuesday to give the World Cup co-hosts a tight four-wicket victory with a ball to spare in their semi-final at Eden Park.
Twelve runs were required off the final over of the rain-reduced match after New Zealand had been set a daunting 298 to score off 43 overs.
Veteran Daniel Vettori squeezed a four past third man, the pair ran a bye and Elliott hit the winning six over long-on to secure New Zealand's first semi-final victory in seven attempts.
They will now meet the winners of Thursday's second semi-final between Australia and India in Sydney in Sunday's final at the Melbourne Cricket Ground.
Elliott was named the man-of-the-match after his masterly 84 not out from 73 deliveries.
Captain Brendon McCullum had set the tone with a brutal 59 from 26 balls, including four sixes.
Elliott and Corey Anderson then combined in a fifth wicket partnership of 103 after Martin Guptill (34) had been needlessly run out and Ross Taylor (30) was caught behind.
- Don't miss our 2015 World Cup coverage
Anderson could have been run out for 33 when he was stranded hopelessly down the pitch at the bowler's end. But South Africa captain AB de Villiers removed the bails without collecting the ball to give him a reprieve.
Morne Morkel bowled a potentially telling over when Anderson skied the ball to Faf du Plessis and was out for 58. Luke Ronchi followed for eight but Elliott and Vettori saw their team home to a rapturous reception from the sellout crowd of 41,269.
Earlier, De Villiers (65 not out) and Faf du Plessis (82) laid the foundations of South Africa's impressive 281 for five off 43 overs with a fourth wicket partnership of 103 from 73 balls.
David Miller blasted 49 off 18 balls and New Zealand did not help their cause by dropping three catches, none of them easy but all the sort of chances they had been taking in their unbeaten run through the tournament.
South African openers Hashim Amla (10) and Quinton de Kock (14) fell cheaply to Trent Boult who broke Geoff Allott's New Zealand record of 20 wickets set at the 1999 World Cup.
- Don't Miss! The Rediff Cricket Show
Rilee Rossouw and du Plessis restored South Africa's fortunes with a third wicket partnership of 83.
When McCullum introduced Anderson, the first ball to Rossouw was a wide and the second flew off the shoulder off the bat to backward point where Guptill leaped to his right to hold the catch.
Du Plessis reached his half-century from 85 balls and celebrated by lofting Matt Henry straight back over his head for six. De Villiers started to collect boundaries at the other end as the South Africans started to accelerate.
The 50 partnership came off 44 balls and De Villiers struck Anderson for 14 runs off three balls immediately after he had been dropped on 38 by Williamson who failed to cling on to a fierce drive.
De Villiers was in full flow now before the players left the field after the 38th over with the score on 216 for three when rain blew in over the stadium.
After the teams returned Anderson dismissed du Plessis but the New Zealand jubilation was cut short when left-hander Miller climbed into their bowling and 65 came off the final five overs.