A sublime unbeaten 145 by Kane Williamson led New Zealand to a 27-run victory over the Proteas in the second one-day international today to seal their first series win on South African soil.
The Black Caps, asked to bat first by South African captain Faf du Plessis, reached 279 for eight in their 50 overs, after Williamson's brilliant 136-ball innings.
South Africa looked on course for victory as they reached 165 for one after 30 overs, but a spectacular collapse - fuelled by five run-outs - caused them to be dismissed for 252, handing the Black Caps an unassailable 2-0 lead in the three-match series.
Williamson was named man of the match and Kyle Mills was the pick of the New Zealand bowlers with figures of 2-28.
"I'm very, very proud of the boys," said captain Brendon McCullum. "They showed so much character over the last two games.
"It was a phenomenal effort to come over here as the No 9 [ranked] side against the No 1 in their own conditions. This is incredibly satisfying - it will probably go down as one of our biggest ever wins in the one-day game.
"Hopefully, for our fans back home, who have stuck by us through some fairly tough times - this is a little bit of love for them as well."
New Zealand were struggling at 32-2 in the 13th over, after BJ Watling (12) became Morne Morkel's 100th ODI victim.
The wicket brought Grant Elliott to the crease and his 128-ball stand of 127 with Williamson gave the visitors great impetus.
Despite a middle-order collapse following Elliott's dismissal for 48, the 22 year-old Williamson controlled his innings superbly, and aided by Nathan McCullum (19) and Mills (15 not out), helped his side to a competitive total.
Williamson admitted he was cramping up towards the end of his marathon innings.
"It was nice to contrbute like that in such an important game," he said.
The South African reply began steadily, with openers Quinton de Kock (25) and Graeme Smith (66) taking 17 from the eighth over from McCullum.
Mills bowled De Kock in the next over to end an opening partnership of 38, but Smith was joined by fellow left-hander Colin Ingram (79) and the pair built a good platform for the hosts.
The 50 partnership came up in the 18th over from just 57 balls and Smith found the fence five overs later with an audacious sweep off Elliott to bring up a 60-ball half-century.
Ingram also reached his half-century and the 100 partnership with a boundary, as he slashed a wide Mitchell McClenaghan to third man and the Proteas were cruising at 139-1.
The duo continued to take the attack to the bowlers and were beginning to look impregnable, until two run-outs in two overs changed the course of the game.
Smith was beaten by a fine James Franklin throw from the boundary to end the 129-run partnership, before a poor call from Du Plessis (2) gave away his wicket eight balls later.
McCullum claimed the crucial scalp of Ingram and the hosts were four wickets down, requiring 100 runs from 93 balls.
David Miller (14) offered brief resistance, before being run out in unfortunate circumstances at the non-striker's end, after a crisp straight-drive from Farhaan Behardien (31) and South Africa were 211 for five when he departed.
Rory Kleinveldt (0) and Berhardien (31) added their names to the list of batsmen to be run out, and the hosts were bowled out for 252, five deliveries short of their allotted 50 overs.
"Kane Williamson's was as good an innings as you'll ever see in one-day cricket and a couple of guys backed him up," said McCullum, who also paid tribute to brother Nathan, who came back from his disastrous start with the ball to turn the screws later in the South African innings.
"That's the mark of someone - to never lost the desire and the fight out there. His spell of bowling really put the pressure on and created those runouts, while some of the fielding was as good as we've shown and we needed to against this side."
The third match is scheduled for Potchefstroom on Friday.
Guptill c du Plessis b Kleinveldt 0
Watling lbw b Morkel 12
Williamson not out 145
Elliott c de Kock b Kleinveldt 48
B McCullum b Morkel 17
Munro c Ingram b Tsotsobe 9
Franklin b Tsotsobe 0
Neesham run out 0
N McCullum c Tsotsobe b Morkel 19
Mills not out 15
Total (for eight wickets) 279
Bowling: Kleinveldt 10-2-45-2, Tsotsobe 10-2-38-2, Morkel 10-1-71-3, McLaren 8-0-57-0, Peterson 9-0-45-0, du Plessis 3-0-19-0
de Kock b Mills 25
Smith run out 66
Ingram c Watling b N McCullum 79
du Plessis run out 2
Behardien run out 31
Miller run out 14
McLaren c Guptill b Franklin 2
Kleinveldt run out 0
Peterson c N McCullum b Mills 0
Morkel not out 19
Tsotsobe b Neesham 9
Total (49.2 overs) 252
Bowling: Mills 9-2-28-2, McClenaghan 10-0-51-0, N McCullum 10-0-56-1, Williamson 3-0-22-0, Franklin 10-0-52-1, Neesham 3.1-0-20-1, Elliott 4-0-23-0
New Zealand win by 27 runs and take the three-match series 2-0 with one to come