New Zealand face a huge task to salvage a draw in their two-match Test series with South Africa after a batting collapse left them 372 runs adrift on a third day dominated by the bowlers in Centurion.
The tourists began the day teetering on 38-3 in reply to South Africa's first-innings total of 481-8 declared and New Zealand duly slumped to 214 all out, despite a hard-fought 77 from captain Kane Williamson.
Dale Steyn (3-66) and Kagiso Rabada (3-62) each took three wickets, but New Zealand responded superbly with the ball themselves, South Africa reaching stumps on 105-6.
Quinton de Kock's 50 was the sole highlight for South Africa with the bat on a day when they were smothered by Tim Southee (2-27) and Trent Boult (2-38), though the hosts remain poised to claim a 1-0 series win after the first Test was washed out.
Earlier, a promising partnership between Williamson and Henry Nicholls (36) was derailed when the latter was deemed to have been trapped lbw by Rabada on review.
Captain Faf du Plessis then successfully reviewed again to dismiss BJ Watling (8), who was deemed to have gloved a delivery to De Kock, giving Steyn his 50th wicket in Centurion.
Mitchell Santner went for a duck as he edged a marvellous Vernon Philander (2-43) delivery onto his stumps, but the tail did not prove easy to remove as Doug Bracewell (18) and Neil Wagner (31) provided Williamson with some admirable assistance.
Steyn and Rabada would not be denied, though, ending New Zealand's innings with the tourists 267 behind.
South Africa's decision not to enforce the follow-on looked erroneous as Southee and Boult showed little signs of fatigue, the latter removing Stephen Cook (4) in the fourth over, having been hit for a quartet of boundaries by De Kock two overs earlier.
Boult then quickly put Hashim Amla (1) under pressure with a string of fine deliveries but it was Southee who the former captain succumbed to, edging to second slip, before JP Duminy (0) was undone by an inswinging delivery three balls later.
De Kock and Du Plessis (6) were only briefly able to stem the tide before the skipper fell victim to a shorter Boult delivery.
However, De Kock - whose 43-ball half-century featured eight boundaries and a six before Doug Bracewell (1-19) ended his innings - was able to steady the ship with Temba Bavuma (25 not out), who will look to push the lead beyond 400 on day four.