New Zealand are in a strong position to level the three-Test series with South Africa after ripping through their opponents' batting order.
The hosts began the day with the bat on 321-4 and they ended their first innings all out on 489 largely thanks to an impressive knock of 176 from Kane Williamson, who hit the boundary 16 times and scored three sixes.
Colin de Grandhomme also contributed with 57, while Mitchell Santner hit 41 to give the Black Caps a 175-run lead when South Africa went back in to bat.
It was a wobbly start for the tourists as they lost five wickets for just 59 runs, with Dean Elgar (5), Theunis de Bruyn (12), Hashim Amla (19), Jean-Paul Duminy (13) and Temba Bavuma (1) all falling.
Faf du Plessis and Quinton de Kock tried to steady the ship as the pair brought the total to 80 runs - 15 apiece - before stumps.
Jeetan Patel took two wickets, while Matt Henry and De Grandhomme took one each, leaving South Africa trailing by 95 runs with five wickets remaining.