Hashim Amla, who was dropped on 48, ground out a patient century in trying conditions and against impressive bowling by New Zealand.
Lucky Amla puts South Africa in control
Amla made 106 not out as South Africa reached 325 for four by the close of play.
The host nation were made to work for their runs against a determined New Zealand team on a slow pitch on which the batsmen seldom looked completely in control.
But an unbeaten century partnership between Amla and Faf du Plessis (69 not out), with some free scoring after tea, put South Africa well ahead.
Amla survived on 48 when he cut hard at Trent Boult and Kane Williamson could not hold a sharp chance at gully.
Amla reached his half-century in the same over off 92 deliveries with his seventh four.
The only boundary in his second half-century was the cut off Boult which raised his 19th Test century after another 95 balls.
Amla was involved in partnerships of 92 for the second wicket with captain Graeme Smith and 86 for the fourth wicket with AB de Villiers (51).
Du Plessis took the majority of the strike in his partnership with Amla, facing 112 of the 173 balls the pair needed to add 102 runs, with Amla content to push the ball into gaps, taking ones and twos as he ensured he did not take risks on a day when lapses of concentration contributed to all four wickets.
It was a pitch on which both batsmen and bowlers needed to exercise patience and for much of the day there was a spirited performance by New Zealand, who lost the first Test in Cape Town by an innings and 27 runs inside three days.
Bracewell was the pick of the New Zealand bowlers, taking two for 70 in 21 overs.
Follow us @SprtNationalUAE