Makhaya Ntini took five for 35 and fellow new ball bowler Dale Steyn three for 43 as New Zealand were Friday bowled out shortly before tea on a pitch which offered bounce and extravagant seam movement.
New Zealand, needing a win to draw level in the series, made a horror start, losing their first three wickets for two runs.
Captain Stephen Fleming and Nathan Astle put on 55 for the fourth wicket but Astle was out eight balls after lunch as the slide resumed.
Fleming, who made 262 in the drawn second Test in Cape Town, was dropped by Jacques Kallis at second slip off Steyn when he was on 24 and went on to make top score of 46.
Fleming seemed unlucky to be given out caught behind off Ntini when it seemed the ball might have flicked his back leg rather than his bat.
Jacob Oram and James Franklin, who made centuries in the first and second Tests respectively, put on 36 for the eighth wicket before the last three wickets fell for one run.
The pitch proved almost impossible for batsmen in the first half hour. Both opening batsman were dismissed without scoring before Fleming scored the first runs in the sixth over.
Steyn struck with his second ball in the second over of the match when Jamie How edged an out-swinger to AB de Villiers at third slip. How was playing his first match of the series, replacing Peter Fulton, who had a back injury.
Ntini bowled Michael Papps in the fifth over, with Papps playing on to his stumps when the ball bounced and cut back sharply.
Scott Styris was the third man to be out for nought when he edged Ntini and De Villiers dived to his left to take another catch at third slip.
All-rounder Shaun Pollock returned to the South African side after missing the second Test because of a lower back injury, while fellow all-rounder Andrew Hall was selected in an all-seam attack. Pollock and Hall replaced fast bowler Andre Nel and left-arm spinner Nicky Boje.
New Zealand also showed two changes from the side that drew the second Test in Cape Town. How replaced Fulton, while seam bowler Kyle Mills came in for off-spinner Jeetan Patel.
The start of play was delayed by 15 minutes because of dew. The match is being played unusually late for a South African season and groundsman Chris Scott had to erect a tent and heating fans to help him prepare a pitch in cool conditions with short day length.
South Africa, currently sixth to New Zealand's fifth in the International Cricket Council Test rankings, lead the series 1-0 and a win or a draw will mean the two sides swop places.