The Blackcaps have a glimmer of hope in their quest for a maiden test series win against South Africa, even after ending the day 211 runs behind the Proteas at Christchurch.
After being bowled out for 293 to concede a lead of 71 runs, the Blackcaps have South Africa 140/5 in their second innings, but will face a difficult run chase if they're to take the series 2-0.
Colin de Grandhomme (120 not out) was New Zealand's hero with the bat, scoring his second test match century, before Tim Southee (2/28) and Neil Wagner (2/44) struck with the ball to stop South Africa from running away with the second test.
The Blackcaps will need to take the final five South African wickets as quickly as possible on day four, with the overnight pair of wicketkeeper Kyle Verreynne (22 not out) and Wiaan Mulder (10 not out) looking to add to the Proteas' lead.
But with the pitch showing no signs of variable bounce or deterioration after three days of play, the Blackcaps will be confident of scoring any total lower than 300 runs in the fourth innings.
Resuming at 157/5, and still 207 runs behind, New Zealand began the day with two boundaries - avoiding the follow-on mark and at the very least ensuring South Africa would have to bat again.
Returning to the crease with 29 runs to his name, Daryl Mitchell played a measured hand on his way to his third test half-century.
And as scoring became easier throughout the morning, Mitchell and de Grandhomme's partnership stretched past 100 runs, reaching their milestone from 159 deliveries before drinks in the morning session.
At the other end, de Grandhomme picked up where he'd left off overnight. After needing just 36 balls for his first 50 runs in the evening of day two, de Grandhomme showed incredible poise and maturity as he batted on into day three.
And after a period of nearly 50 minutes with his score in the 90s, de Grandhomme was finally able to bring up his second test hundred, cutting Keshav Maharaj behind point to reach three figures, needing 138 balls with 12 fours and two sixes.
The innings was de Grandhomme's second test century, and first since December 2017 - when he made 105 against the West Indies.
Maharaj would strike to remove Mitchell though, trapping him in front lbw for 60, breaking the partnership for 133 runs with the score at 224/6, still 140 runs behind.
Kyle Jamieson came and went for 13 before he was caught at leg slip to give Marco Jansen a third wicket at 249/7, as de Grandhomme batted safely through to lunch.
But the Blackcaps couldn't capitalise on de Grandhomme's innings in the second session, as New Zealand were bowled out for 293.
In the first over after lunch, Southee gave his wicket away for five, caught mistiming a pull shot off Marco Jansen.
Wagner entertained with a cameo of 21 - that saw him send Maharaj over long-off for six - but he too fell as the Blackcaps looked to limit the Proteas' lead.
But Wagner and last man Matt Henry fell in successive balls, giving Kagiso Rabada a five-wicket haul to leave de Grandhomme stranded with an unbeaten career-best 120.
All out for 293, and trailing by 71 runs, the Blackcaps needed to strike early to restrict South Africa in the hopes of a chaseable fourth innings target.
And Southee did just that, striking twice to see the back of South Africa's opening pair.
Fresh from a maiden test century in the first innings, Sarel Erwee could add just eight in the second, before he was trapped lbw by Southee at 12/1, which became 23/2 when captain Dean Elgar was removed courtesy of an outstanding diving catch by Tom Blundell behind the wicket.
Henry struck to remove Aiden Markram before tea, bowling South Africa's No.3 with a yorker for his 50th test wicket, reducing the Proteas to 42/3 entering the final session - a lead of 113 runs.
A partnership of 65 between Rassie van der Dussen (45) and Temba Bavuma (23) took South Africa's score past 100, and the lead past 150, frustrating the Blackcaps after tea.
Van der Dussen was dropped on 40 by de Grandhomme at square leg, but fell five runs later as Wagner pulled off an athletic caught and bowled to have South Africa 103/4 and New Zealand eyeing an opening.
Wagner struck again to remove Bavuma, as a wide ball was driven straight into the hands of Southee at short cover, bringing Mulder to the crease to join Verreynne for the sixth wicket.
The pair have so far added an unbeaten 26 runs in 82 balls, and will return to the crease on day four with the sole intent of adding to South Africa's lead - with plenty of time still remaining in the match for the Blackcaps to chase any target.
South Africa 364 all out (Erwee 108; Wagner 4/102) & 140/5 (van der Dussen 45; Southee 2/28)
New Zealand 293 all out (de Grandhomme 120 not out; Rabada 5/60)
Join Newshub for live updates of the Blackcaps v South Africa from 11am Monday.