Neil Wagner ignited an inspired New Zealand fightback to end the South Africa first innings at 308 on day two of the first Test in Dunedin on Thursday.
The last six wickets fell for 56 runs, with the innings mopped up five overs after lunch, following South Africa resuming the day at 229 for four.
Wagner started the rout in the 13th over of the day with the removal of South Africa's batting mainstay Dean Elgar for 140.
He caught the edge of Elgar's bat three times in a barrage of bouncers with one ball sailing over the slip cordon and one falling just short of Ross Taylor at first slip before the third nick went straight to wicketkeeper BJ Watling.
Elgar had added 104 runs from the time he was dropped by Watling on the first day and also posted his hishest Test score, surpassing the 129 he scored against Sri Lanka two months ago.
Temba Bavuma, who put on 104 with Elgar for the fifth wicket, was the first of three wickets on day two for Trent Boult who finished with four for 64.
Wagner took three for 88 and Jeetan Patel two for 85 including Quinton de Kock for the third time in as many innings this tour, restricting the usually prolific batsman to 10.