Dean Elgar punished New Zealand for an untidy day in the field as South Africa progressed slowly to a 124-run lead at tea on day four of the first Test in Dunedin.
South Africa were 157 for three in their second innings with Elgar on 73 and Faf du Plessis on 16, having added only 119 runs in two sessions.
Elgar brought up his half century with a cracking drive that went through the hands of substitute fielder Colin de Grandhomme at short cover in yet another missed opportunity for New Zealand.
On a chilly day in which play was disrupted twice by rain and gloom, it was the third dropped catch in the innings while New Zealand also did not review a rejected lbw decision which would have earned a wicket.
South Africa added one to their overnight 38 when Hashim Amla was dismissed before Elgar put on 74 with JP Duminy for the third wicket and an unbeaten 44 with Faf du Plessis.
He was given out caught behind on the last ball before tea but that decision was overturned when replays showed the ball missed the bat.
But there were fluffed chances by New Zealand with Duminy dropped by Tom Latham on six. On 20 he was given not out when hit on the back pad by Jeetan Patel which New Zealand did not review although the ball-tracker technology showed it was heading straight at leg stump.
Meanwhile, two reviews New Zealand did make were both rejected and Elgar was dropped by wicketkeeper BJ Watling on 35.
New Zealand went into the Test without Tim Southee in favour of two spinners, Jeetan Patel and Mitchell Santner but tended to use Santner sparingly.
Patel had delivered 14 overs on day four before the left-arm Santner was brought into the attack.
Amla was the only wicket to fall in the opening session, reaching 24 before he chipped Neil Wagner to substitute fielder Tim Southee at mid-wicket.
Wagner trapped Duminy plumb in front in the sixth over after lunch for 39 with a ball that nipped back.
The forecast is for cold but mainly fine weather for the remainder of the day but with heavy rain on Sunday.