Rassie van der Dussen gave South Africa something to bowl at as the Proteas struggled to 241 for six against tight bowling from New Zealand while battling for a win they need to keep their fading World Cup hopes alive.
After a soggy outfield delayed Wednesday's start at Edgbaston and reduced the match to 49 overs per side, Black Caps captain Kane Williamson won the toss and chose to field, hoping to take advantage of bowler-friendly conditions.
Hashim Amla made a sluggish 55 off 83 balls but Van der Dussen's 67 not out came at better than a run-a-ball.
"It's a bit of a sticky wicket, there has been a lot of rain around here in the last two weeks," said Van der Dussen during the innings break.
"We need to make 241 enough. We know it's not a 300 wicket. If you get 250-260 then you can defend that and that's what we set out to do.
"Our backs are against the wall so we have to come through," he added after New Zealand's bowlers kept the scoring rate to below five an over.
New Zealand, the 2015 losing finalists, were on top early when Trent Boult demolished Quinton de Kock's stumps, sending him back to the pavilion for just five.
Amla and skipper Faf du Plessis helped the Proteas recover to 59-1 in the 14th over.
But Lockie Ferguson then produced an impressive yorker to bowl Du Plessis for 23 immediately after a testing bouncer.
Amla and Aiden Markram put on 52 for the third wicket before veteran opener Amla was bowled by left-arm spinner Mitchell Santner.
During his innings, Amla became the fourth South African player to reach 8,000 runs in one-day internationals.
He is the second-fastest player (176 innings) from any side to reach the milestone after India's Virat Kohli (175 innings).
Markram was caught by Colin Munro off Colin de Grandhomme for 38 and David Miller went for 36 before a late flourish from Van der Dussen gave the scoreboard a look of respectability.
South Africa, who brought in fast bowler Lungi Ngidi for Beuran Hendricks, must win this match if they are to stand a realistic chance of reaching the semi-finals after finally recording their first victory of the tournament, against minnows Afghanistan on Saturday.
Despite that nine-wicket win, Du Plessis's side are still languishing in eighth spot in the 10-team table after five games, with the top four qualifying for next month's semis.
After Wednesday's game they will face Pakistan, Sri Lanka and Australia.
New Zealand are flying high and a fourth win would lift them to the top of the table ahead of matches against West Indies, Pakistan, Australia and hosts England.