Kane Williamson and Jeet Raval added 190 for the second wicket to help New Zealand to a seven-run lead at the close of play on Day 3 at Hamilton. Three wickets towards the end of the day shifted the game to an even keel after the hosts had a distinct advantage courtesy a sensational partnership.
There was little movement or swing on offer for the Proteas seamers and Maharaj was unsettled by Williamson, who was targeting him right from the start. Raval was patience personified, while the skipper played his shots to race to a magnificent hundred.
Morne Morkel's nagging, round-the-wicket line, and de Kock's stunning effort behind the stumps eventually broke the partnership. Rabada then removed Neil Broom and Henry Nicholls in quick succession to even out things.
Brief Scores: South Africa 314; New Zealand 321/4 (Williamson 148*, Raval 88, Morkel 2/74)
Here are the talking points from the day's play at Seddon Park, Hamilton.
#5 Kane Williamson guides New Zealand's fightback
New Zealand needed Williamson to step up and help the Kiwi batting order after they had lost Ross Taylor to injury. The hosts were also a batsman short in this game from the last game with James Neesham dropped for Mitchell Santner, which meant that their top order had to click.
Extra Cover: Stats: Kane Williamson equals all-time Kiwi record
Williamson put all doubts to rest with a scintillating knock highlighted by his handling of Rabada and Maharaj. He never let the left-arm spinner settle into a rhythm and took on Rabada each time he bowled short. With a solid Jeet Raval for company, the Kiwi skipper rubbed salt onto Proteas' wounds.
In the process of notching up an unbeaten 148, Williamson became the fastest Kiwi batsman to 5000 Test runs, surpassing Martin Crowe by seven innings. His straight six off Maharaj to disrupt his tactic of hitting the footmarks was a major highlight of the day.
#4 Tom Latham finally managed a half-century
Spurred on by a swift catch at short leg, Tom Latham took that confidence to his batting, much to the relief of New Zealand supporters. A reliable batsman last year, Latham's form had deserted him completely in the last few months.
The New Zealand management persisted with him through his tough times and when they needed him to step up, the opener did. A fine half-century against some quality bowling from Philander, Morkel and Rabada would bring back some lost confidence.
Latham looked assured and his feet were moving better as he played some trademark drives while looking solid in defence. He was troubled by Morkel from round the wicket and eventually, the tall fast bowler forced an edge through to de Kock soon after Latham had crossed his fifty.
#3 Morne Morkel returns to his venomous line of attack
Morne Morkel, before his injury last year, was one of the best fast bowlers to left-handers. He could make the lefties twitch with his round the wicket line. The Titans fast bowler used the tactic regularly to make southpaws play more balls in Tests.
Today, he used the ploy yet again and reaped success against Tom Latham and Jeet Raval, the New Zealand openers. Both of them found his bounce and line disconcerting and eventually nicked to the keeper. Latham's wicket was his 250th in Test match cricket.
South Africa would be happy to see the manner in which Morkel has gone about his business on a flat track. He has shown no signs of the back injury that kept him out for a year and his zip, bounce and pace are back to its menacing best.
#2 Rabada evens out day with twin strikes
Kagiso Rabada was largely ineffective through the day as Jeet Raval and Kane Williamson played him with a calculated approach. There was a clear ploy to not let him settle into a channel and disturb his rhythm.
As is the case with most world-class seamers, once an opening is found, they exploit it. Rabada did the same once Morkel saw the back of Jeet Raval. He struck twice in two overs, sending back Neil Broom by trapping him in front and then forcing an edge from Henry Nicholls off his first ball.
New Zealand had dominated proceedings all day but Rabada's twin strikes along with a shade of reverse swing on offer, evened out the game. If the South African strike bowler manages to reverse the ball tomorrow, New Zealand will struggle to extend their total to a good lead.
#1 Jeet Raval's typical gritty knock
New Zealand knew they had unearthed a fighter right from the time they watched Jeet Raval open the batting in Tests. He has been phenomenal for the hosts ever since his induction into the side, taking the shine off the new ball even when his partner was woefully out of touch.
Raval did the same on Day 2, before putting on a terrific 190 run stand with his skipper on an unusually bright day at Seddon Park. He was positive against the South African seamers and left the ball well outside his off-stump as he raced to his fifth half-century in twelve innings.
The Kiwi batsman made a career-best 88 but his dismissal was on the cards after he showed signs of struggling against Morkel's line. He was stuck at the crease on 83, taking 25 balls to score a run from there. He eventually nicked a Morkel delivery to de Kock to depart without scoring a deserved hundred.