South Africa are in the box seat after the second day of the second test against the Blackcaps at Christchurch, even after a late fightback from the home side.
New Zealand have finished day two at Hagley Oval at 157/5 in reply to South Africa's 364, still trailing by 207 runs.
Resuming after an improved effort with the bat on day one, South Africa's lower order frustrated the Blackcaps, lifting the total to 364 runs by the time the Proteas were bowled out after lunch.
And a sensational burst with the ball, led by Kagiso Rabada (3/37) and Marco Jansen (2/48), saw South Africa's quicks lay waste to the Blackcaps top order, reduced to 91/5 in the day's final session.
But a classic Colin de Grandhomme blitz stole back any momentum, as he belted a rapid half-century in just 36 balls, reaching the close of play with an unbeaten 54, joined by Daryl Mitchell on 29 not out.
The pair have added an unbroken 66 runs for New Zealand's sixth wicket and will resume on Sunday in an attempt to eat into South Africa's huge lead.
Returning after a frustrating opening day at Hagley Oval, the Blackcaps bowlers looked to make amends, after only prizing three South African wickets on Friday.
Poor fielding cost New Zealand early, as Tim Southee dropped Rassie van der Dussen on 21, off the bowling of Matt Henry, after the batter was given a life on day one, dropped by Will Young with his score on just seven.
But at the other end, the Blackcaps struck twice through Henry.
Overnight batter Temba Bavuma lost his off-stump for 29, when he missed a straight ball, before wicketkeeper Kyle Verreynne went for four, caught at second slip by Tom Latham to give Henry his second and third wickets.
Van der Dussen finally departed in the morning session, edging Neil Wagner's worst delivery of the morning to Mitchell at slip for 35, while Wiaan Mulder made 14, before he was bounced out by Wagner, caught by Tom Blundell.
From 257/3, South Africa had slumped during a morning session that saw them score just 60 runs, reaching the break 298/7.
Wagner struck in his first over after the lunch break, as a diving Mitchell caught Kagiso Rabada at slip.
But after a short rain delay, South Africa counterattacked through their ninth-wicket partnership, as Marco Jansen (37 not out) and Keshav Maharaj (36) added 62 runs in 79 balls together.
The pair cashed in against Wagner in particular, hitting the left-armer out of the attack and denying him a chance at a five-wicket haul.
Kyle Jamieson's reintroduction to the attack broke the partnership, as Maharaj was caught by Henry Nicholls at gully, before No.11 Lutho Sipamla was caught by Southee at third slip for a duck, leaving Jansen stranded in his search for a maiden test half-century and South Africa all out for 364.
And after taking momentum to end their innings with the bat, South Africa carried on when it came their time to bowl.
In the first over of the innings, Rabada had Blackcaps captain Latham for a duck, strangled down the legside and caught by Verreynne at 4/1, before Young was caught behind at 9/2 - still 355 runs behind.
Devon Conway added 16, before he also fell to a legside strangle from Jansen, while Nicholls effortlessly made it to 39, only to fall into a trap set by the Proteas - cutting straight to Sarel Erwee, who'd just been positioned halfway to the boundary.
Blundell added just six, before he was bowled attempting to leave a ball from Rabada that came back into the righthander. That dismissal left the Blackcaps 91/5, still 273 runs behind.
But Blundell's exit saw the arrival of de Grandhomme, who played his natural game to heap the pressure back onto South Africa.
Starting by cover-driving his first ball for three runs, de Grandhomme didn't look back and launched a boundary-laden innings against a shell-shocked Proteas attack.
De Grandhomme hit seven fours and two sixes on his way to a 36-ball fifty, adding a half-century partnership with Mitchell. Of the first 50 runs added by the pair, de Grandhomme had 43 of them.
If there was anything more impressive than de Grandhomme's attack, it was his defence to end day two - blocking out the final overs to ensure he'll return on Sunday to try and see New Zealand further back into the match.
After needing just 36 balls to raise his half-century, de Grandhomme played out the rest of the day to be 54 not out from 61 balls at the close.
At the other end, he will be joined by Mitchell, unbeaten with 29 from 78 balls, as New Zealand's last recognised specialist batter.
The Blackcaps still need a further seven runs to avoid the follow-on, but will want to get as close to South Africa's 364 as possible, hoping to avoid defeat and hold on for New Zealand's maiden test series victory over the Proteas.
South Africa 364 all out (Erwee 108; Wagner 4/102) New Zealand 157/5 (de Grandhomme 54 not out, Nicholls 39; Rabada 3/37)
South Africa lead by 207 runs
Join Newshub for live updates of the second test between the Blackcaps and South Africa from 11am Sunday.