New Zealand fought bravely to move to 157 for four in their second innings, following on and still 247 runs behind South Africa, at the close of the third day's play in the second Test on Sunday.
Unbeaten pair BJ Watling (41) and Dean Brownlie (44) provided stern resistance and the duo looked relatively untroubled as they added an unbroken fifth-wicket partnership of 73 off 27.2 overs to steer their team to the close of play.
Opener Martin Guptill contributed 48 before being bowled by seamer Rory Kleinveldt who went on to have Daniel Flynn (0) caught behind with his next delivery.
Kleinveldt ended the day with two for 31 while left-arm spinner Robin Peterson, who accounted for Brendon McCullum (11) and Kane Williamson (11), claimed two for 29.
South Africa first innings 525 dec
New Zealand first innings 121 all
New Zealand innings
M Guptill b Kleinveldt 48
B McCullum lbw b Peterson 11
K Williamson b Peterson 11
D Brownlie not out 44
D Flynn c De Villiers b Kleinveldt 0
BJ Watling not out 41
Total (for four wickets; 67 overs) 157
Fall of wickets: 1-40, 2-64, 3-84, 4-84.
Bowling: Steyn 13-1-41-0, Morkel 13-4-32-0 (1w), Kleinveldt
12-8-31-2, Peterson 20-11-29-2, Kallis 5-3-8-0, Smith 1-0-10-0, Petersen 3-0-5-0.
The tourists showed far more determination with the bat than they had in their first innings when they subsided to 121 all out in reply to the top-ranked hosts’ 525-8 declared.
The morning session had belonged to speedster Dale Steyn, the world's top-ranked bowler, who claimed five for 17 off 13 overs to bundle New Zealand out 30 minutes before lunch, at that stage trailing South Africa by 404 runs.
Watling provided the one shining light for the tourists in their first dig as his battling 63 off 87 balls with 13 fours added some gloss to the innings.
New Zealand began the day on a parlous 47 for six and the pair of Watling and Doug Bracewell (7) added 14 runs to the overnight total before the right-handed Bracewell prodded at a Steyn delivery to send an outside edge through to keeper De Villiers.
Steyn struck again one run later when he trapped the left-handed Neil Wagner (0) leg-before with an in-swinging delivery.
The 29-year-old Steyn was not done yet and in his next over he bowled Jeetan Patel (0) after the batsman backed away from a good length delivery.
Steyn enjoyed a wonderful morning as he claimed his 19th five-wicket haul in Tests as he sent down a spell that produced figures of 5-3-3-3.
Watling and Trent Boult (17 not out) then provided some late resistance with a last-wicket stand that produced 59 runs, a New Zealand record 10th-wicket partnership against South Africa beating the 57 scored by Simon Doull and Richard de Groen scored in Johannesburg during the 1994/95 season.
The aggressive Watling was the last man out, caught at first slip off the bowling of paceman Morne Morkel.
South Africa hold a 1-0 series lead.