New Zealand finished the fourth day of the final Test 274 runs behind South Africa on Monday and lost Ross Taylor to a broken arm after the skipper was struck by a Morne Morkel bouncer.
Graeme Smith and Alviro Petersen pushed South Africa to the comfortable advantage at the Basin Reserve after Vernon Philander had taken his sixth five-wicket haul.
Smith was on 34 at the close of play with first-innings centurion Petersen on 38 as the visitors moved to 75 without loss off 15 overs in their second innings and looked to extend their lead after bowling New Zealand out for 275 after tea.
South Africa had made 474 for nine declared in their first innings.
Taylor was hit just above the left wrist by Morkel's delivery and while he faced another ball after receiving treatment, he then walked off and went for X-rays, which showed he had broken his left ulna, New Zealand Cricket said.
He did not return to the crease in New Zealand's first innings and was "unlikely" to make any further appearance.
Philander, in just his seventh Test, finished with figures of six for 81.
The 26-year-old, who took 10 wickets in the second Test to help South Africa to a nine-wicket victory and 1-0 series lead, also achieved his 50th Test victim when he bowled Doug Bracewell for a second-ball duck.
He has taken 21 wickets this series at 14.09.
Mark Gillespie hit two boundaries off Philander to ensure New Zealand just avoided the follow on target before he became the South African's sixth wicket of the innings.
The hosts' batsmen, who have made a habit of getting starts this series before getting out, repeated the pattern on Monday with five of their top seven passing 30 before being dismissed. Number six Dean Brownlie also made 29, while Taylor retired hurt on 18.
South Africa (1st first innings): 474-9 decl.
New Zealand (1st innings): (overnight 65-0)
D.Flynn c Boucher b Philander 45
M.Guptill lbw b Philander 59
B.McCullum c Boucher b Steyn 31
R.Taylor retired hurt 18
K.Williamson c Boucher b Steyn 39
D.Brownlie c Steyn b Philander 29
D.Vettori c Rudolph b Philander 30
K.van Wyk c sub b de Lange 7
D. Bracewell b Philander 0
M. Gillespie c de Villiers b Philander 10
C. Martin not out 2
Extras: (lb-2, nb-1, w-2) 5
Total: (for nine wickets, 96 overs) 275
Fall of wickets: 1-86, 2-136, 3-145, 4-219, 5-242, 6-263, 7-263, 8-263, 9-275.
Bowling: Steyn 23-8-41-2; Philander 22-4-81-6 (nb-1, w-1); Morkel 20-6-54-0; De Lange 21-1-74-0 (w-1); Duminy 10-0-23-0.
South Africa (2nd innings):
A.Petersen not out 38
G.Smith not out 34
Extras: (w-2, nb-1) 3
Total: (for no wickets, 15 overs) 75
To bat: Hashim Amla, Jean-Paul Duminy, AB de Villiers, Jacques Rudolph, Mark Boucher, Vernon Philander, Dale Steyn, Morne Morkel, Marchant de Lange .
Bowling: Martin 6-0-24-0; Bracewell 5-0-29-0 (w-2); Gillespie 4-0-22-0 (nb-1).
South Africa lead the three-match series 1-0.