New Zealand restricted South Africa to 241 in a 49-over contest at Edgbaston to boost their hopes of climbing to the top of the World Cup table.
Rassie Van Der Dussen (67 not out) and Hashim Amla (55) both made half-centuries but South Africa seldom dominated the Black Caps’ attack and their score looked below par.
Lockie Ferguson took three for 59 with his extra pace as Matt Henry, Colin De Grandhomme and Mitchell Santner all delivered useful economy rates to frustrate South Africa.
Heavy overnight rain delayed the start of play by 90 minutes, with an over from each team’s innings lost as a result.
South Africa skipper Faf Du Plessis had declared his side could afford no more slips after taking only three points from their opening five games.
But they were bolstered by the return of Lungi Ngidi after hamstring trouble, the paceman replacing Beuran Hendricks in the Proteas attack.
Ngidi was kept on balcony watch, however, as the Black Caps won the toss and captain Kane Williamson sough to exploit the overcast conditions.
It proved a shrewd move as Trent Boult knocked over Quinton De Kock’s leg stump after the South African dangerman had made just five.
Amla found some fluency after a disappointing World Cup and became the fourth South African player to reach 8,000 runs in ODI cricket after Jacques Kallis, AB De Villiers and Herschelle Gibbs.
But Henry built pressure by conceding only 19 runs from seven overs, including consecutive maidens, and South Africa were unable to accelerate in a fashion that would bring 300 within reach.
Du Plessis had made 23 when he was beaten by Ferguson’s searing yorker, the prelude to an even more patient partnership between Amla and Aiden Markram.
Amla showed touches of his old self by dispatching Boult for successive boundaries but, having reached 50 from 75 balls, he was undone when Santner turned one past his outside edge to clip the top of off-stump.
Curiously, it was only the fifth time in World Cup history that the top three batsmen had all been bowled.
Markram made 38 from 55 balls, but it was not until Van Der Dussen and David Miller came together that South Africa managed some belated aggression.
Miller passed 3,000 ODI runs in making 36 from 37 balls and Van Der Dussen struck three sixes in his 64-ball innings.
But New Zealand looked the happier of the two sides at the halfway stage as South Africa finished on 241 for six.