Fast bowler Dale Steyn, playing in his fourth test, has taken three for 35 and offered steady support to paceman Makhaya Ntini, who took four for 41 today.
Opener Hamish Marshall stood firm on 24 not out when bad light and drizzle ended play nine balls after tea. Daniel Vettori was 18 not out.
South Africa resumed their second innings on 280 for nine and were dismissed for 299 in the eighth over of the day.
Ntini struck twice in three balls in the third over of New Zealand's second innings when he had Peter Fulton caught behind by wicketkeeper Mark Boucher for four and Kyle Mills taken at first slip by Boeta Dippenaar.
Mills was presumably promoted to shield New Zealand's middle order from the new ball on a pitch of inconsistent bounce.
The visitors slumped to 17 for three in the eighth over when Stephen Fleming, who scored six, edged a delivery from Steyn to Jacques Kallis at second slip.
Two overs later Steyn had Scott Styris caught behind for two. Eight balls after that, the Black Caps were 26 for five when Nathan Astle prodded a delivery from Ntini to AB de Villiers at third slip to be dismissed for two.
In the third over before lunch Jacob Oram, who scored 133 in the first innings 327, became the first New Zealander not to fall to a catch in the arc behind the wicket when Ntini uprooted his off-stump with a ball that kept low.
New Zealand went to lunch on 34 for six, and bad light delayed the start of the second session by 85 minutes.
Marshall and Brendon McCullum took their seventh-wicket stand to 45, the biggest of the innings, before McCullum edged a ball from Steyn to Dippenaar at first slip.
McCullum faced 38 balls and hit two fours and two sixes in his aggressive 33.