Du Plessis was unbeaten on 112 when South Africa declared on 481 for eight before reducing New Zealand to 38 for three at the close with superb fast bowling on a wicket that has both sideways movement and variable bounce.
Skipper Kane Williamson is not out on 15 and will carry the hopes of the touring side into the third day, along with Henry Nicholls who is unbeaten on four.
South Africa’s opening bowlers, Dale Steyn and Vernon Philander, both returning to the side for this series after injury layoffs, used the conditions superbly and were unlucky not to find more success.
Philander had Martin Guptill (eight) caught at slip by Stiaan van Zyl before Steyn induced an edge from Tom Latham that was caught by wicketkeeper Quinton de Kock.
With plenty of deliveries beating the bat and the scoring rate slow, Ross Taylor (one) showed signs of panic. He took on the arm of the nippy Temba Bavuma at midwicket and was run out to compound the misery for New Zealand.
Du Plessis had earlier shown the way with a patient innings that took 234 balls and was his first test ton in 17 visits to the crease, a timely return to form as he stands in for regular captain AB de Villiers.
JP Duminy, restored to the team in the absence of De Villiers, missed out on his century, though, falling for 88 caught behind off a wild hook.
Neil Wagner, who attended primary and high school with Du Plessis in Pretoria, was the pick of the New Zealand bowlers with figures of 5-89 in 39 overs.