Luke Ronchi scored 99 to rescue the New Zealand innings as they set South Africa 231 runs to win in the first match of the one-day international series at Mount Maunganui.
The Kiwis got off to a poor start in the game as James Neesham was dismissed for 16 by, while fellow opener Martin Guptill fell for just five as they slipped to 35-2 in the 10th over, with Vernon Philander claiming both scalps.
Dean Brownlie and skipper Brendon McCullum managed to get the innings moving over the 50-run mark as they staved off the impressive South African attack.
However, Imran Tahir snagged the wicket of Brownlie for 24 and he was quickly followed back to the pavilion by McCullum and Corey Anderson, who fell to Morne Morkel, to leave the hosts reeling at 68-5.
Tom Latham and Ronchi steadied the ship to get the Black Caps back on track, and the duo managed to put on a partnership of 50 at the halfway stage.
Latham's dismissal for 29 caused another collapse as Daniel Vettori, Nathan McCullum and Kyle Mills all fell cheaply leaving the score at 156-9.
Ronchi ensured that his side would remain competitive as he took the attack to the AB de Villiers's men to reach his half-century. The 33-year-old began his onslaught to push the Kiwis over the 200-run mark with several boundaries with Ryan McLaren taking most of the punishment.
The wicketkeeper moved into the 90s but fell agonisingly short of his century as he was caught behind off the bowling of Dale Steyn for 99, as his side posted 230.