CAPE TOWN: An undefeated half-century by AB de Villiers guided South Africa to 335 for six at lunch after an improved bowling performance from New Zealand on day two of the first test on Thursday.
The hosts, who bowled out New Zealand for 45 on the first day, resumed on 252 for three, but the touring side made the ideal start when Trent Boult forced Alviro Petersen to play on after adding just three runs to his overnight score of 103.
Early morning rain had cleared two hours before the start of play, but the ominous grey skies remained for much of the morning and De Villiers and Faf du Plessis had to survive an awkward period in which the pitch offered the seamers lateral movement.
The disciplined bowling from the Black Caps soon accounted for Du Plessis, whose test average of 146.50 after two matches took a hit when Chris Martin had him caught at gully for 15 with the score on 281.
Dean Elgar received an ironic ovation from the home crowd when he made his first run in test cricket at the third time of asking.
The pair remained resolute in testing conditions, though, and the decision by New Zealand to take the new ball only succeeded in breaking the shackles as De Villiers brought up his 30th test fifty with consecutive boundaries off Boult.
The spotlight was on Boult two overs later as he appeared to have Elgar trapped in front, but after umpire Rod Tucker shook his head, the Kiwis failed to call for a review which replays showed would have resulted in a reversal of the Australian's decision.
As the clouds relented and the sun bore through, Boult got his man in the penultimate over before the interval when Elgar edged a catch to wicketkeeper BJ Watling for a hard-fought 21.
The top-ranked South Africans reached 335 for six at lunch, 290 runs ahead and with the determined De Villiers unbeaten on 61.