Captain AB de Villiers weighed in with an unbeaten 65 for South Africa and David Miller an 18-ball 49 in a target that was escalated by Duckworth-Lewis, but just within New Zealand's reach.

It was a fourth unsuccessful World Cup semi-final for the Proteas to add to two defeats and the famous 1999 tie with Australia.

For New Zealand, a seventh last-four tie finally yielded a place in the final after six previous losses.

Media playback is not supported on this device

Swann in awe of 'wonderful' New Zealand win

It was earned in a thrilling, fluctuating contest played out in front of a raucous and partisan crowd at Eden Park.

In scarcely believable drama that had echoes of Kane Williamson's six to defeat Australia by one-wicket earlier in the tournament, South Africa-born Elliott smashed Steyn for six over long-on two balls after Daniel Vettori steered a four to the third-man boundary.

Elliott should have been caught from the final ball of the previous over, but his top-edged hook fell to the ground after a boundary collision by JP Duminy and sub fielder Farhaan Behardien.

That South Africa came so close was down to their third comeback of a game that both teams controlled at various points.

The Black Caps were in the early ascendancy thanks to some dangerous swing bowling and electric fielding that reduced South Africa to 114-3 in the 27th over.

Later, they looked to be sprinting through the run-chase when captain Brendon McCullum destroyed the South Africa attack with a 22-ball half-century that included taking 24 runs from a single Steyn over.

South Africa, though, resisted, just as they had earlier through Du Plessis' patience, De Villiers' invention and Miller's explosive power.

Twitter reaction

Former England batsman Kevin Pietersen: "South Africa DID NOT CHOKE. They got beaten by a better team today. AB led the team wonderfully well. But, well done NZ. See you in Sydney."

Former Australia spinner Shane Warne: "Please hold your heads high South Africa, you've done everyone proud as you gave it absolutely everything. Congratulations to the NZ team who were outstanding in their run chase."

Their defiance in the field came with some help from the home side, as McCullum slapped Morne Morkel to mid-on, Williamson pulled the same bowler on to his own stumps and Martin Guptill was run out in a mix-up with Ross Taylor.

And, when Taylor was caught down the leg side from the off-spin of Duminy, New Zealand still needed 139 from 22 overs.

Media playback is not supported on this device

Cricket World Cup 2015: How New Zealand beat South Africa

They were pulled back into contention thanks to the watchful Elliott, who was strong through the covers, and the force of Anderson in a partnership of 103.

De Villiers missed the chance to run out Anderson on 33, failing to gather the ball at the non-striker's end with the left-hander well short of his ground.

The reprieve was the start of New Zealand's acceleration towards their target, but after Anderson skied Morkel to square leg with 46 still to get, South Africa clawed their way back once more.

The requirement got down to 23 from the final 12 balls, with 11 runs taken from a Morkel over that included the Elliott reprieve.

A tie would have taken the Black Caps to the final because of their superior group record, but Elliott ensured the co-hosts won outright.

New Zealand have won their last 10 one-day internationals - the first time they have done so - including eight World Cup matches

The highest successful run chase in any World Cup knockout game before this match was Australia's 289-4 v New Zealand in Madras in the 1996 quarter-finals

Brendon McCullum has hit 17 sixes in the first 10 overs of this World Cup. Chris Gayle has struck six but no-one else has more than three

Trent Boult now has 21 wickets in this World Cup, passing Geoff Allott's 20 as the most in a tournament for New Zealand. He is the top wicket-taker in the 2015 version with three more than Australia's Mitchell Starc

The previous highest total in a World Cup semi-final was West Indies' 293-6 v Pakistan at The Oval in 1979

South Africa were reduced to 31-2 with openers Quinton de Kock and Hashim Amla out cheaply

South Africa's David Miller made 49 runs off only 18 balls. His innings included six fours and three sixes

A two-hour rain delay scuppered South Africa when they were well placed on 216-3 after 38 overs

Du Plessis was out only two balls after the resumption, caught down the leg side from a Corey Anderson bouncer that had originally been called a wide

McCullum lost his shoe at one point but his stunning innings gave New Zealand a superb start

AB de Villiers missed the chance to run out Grant Elliott when he dislodged the bails with his hands and fell over

Farhaan Behardien (right) dropped Elliott in the penultimate over after colliding with JP Duminy

Man of the match Elliott steered his side home with 84 from 73 balls, including three sixes

South Africa's despair was clear to see as they faced up to a fourth semi-final defeat