Kagiso Rabada (34 off 31 balls) hit six fours and one six to post his highest Test score as he edged South Africa past 300 on day two in Hamilton.
Rabada came in after South Africa had lost their eighth wicket, with Quinton de Kock settled on 68 runs.
He plucked Neil Wagner for his first boundary after facing only six deliveries, two balls after the new ball had been taken. The 21-year-old continued to impress after a rain delay, smacking another four off the bowling of Colin de Grandhomme.
He supported De Kock well as they put on 46 runs, which was highlighted by the pair hitting 17 runs off Matt Henry in the 87th over.
De Kock struck first and slogged Henry over deep midwicket off his second delivery, followed by a single to take him to 90.
Rabada continued to bat aggressively against the short ball, finding a top edge over fine leg for six, followed by a top edge over the wicketkeeper for four, to take the Proteas to 295-8.
De Kock fell in the next over and Rabada hit two more boundaries, before losing his wicket on a well-played 34, surpassing his previous high score of 32 not out, as the Proteas were bowled out for 314.
Photo: Dave Rowland/Getty Images