Vernon Philander bagged two wickets with his outswingers.
Dale Steyn stuck to feeding short-pitched deliveries to the batsmen. At times, he was attacked, at times the batsmen ducked. Nonetheless, the move worked for the bowlers as he accounted for three crucial wickets.
South Africa were bowled out for 214, conceding a 267-run lead. Kagiso Rabada finished with three wickets.
Neil Wagner provided some late flourish by going after Dale Steyn. He put on a 45-run stand with Kane Williamson for the ninth wicket.
Kane Williamson stroked his 22nd Test century even as wickets kept falling from the other end.
New Zealand got off to a steady start, not losing a wicket in the first hour of Day Three. However, three wickets feel in quick succession before Lunch.