Andre Nel claimed the only wicket of a shortened morning when he bowled Michael Papps for 22, ending a 50-run opening stand between Papps and Peter Fulton (36 not out).
Nel played in place of all-rounder Shaun Pollock, who was a late withdrawal from the South African team because of lower back pain.
Nel's inclusion gave South Africa a potentially potent pace attack as he joined Makhaya Ntini and Dale Steyn, who shared 17 of the 20 wickets when South Africa won the first Test at Centurion by 128 runs.
But if South African captain Graeme Smith expected to blast through a seemingly fragile New Zealand opening pair he was disappointed.
The start was delayed by 30 minutes by dew on the outfield but the pitch played placidly, although both Papps and Fulton played and missed several times against Ntini and Steyn.
Papps was playing in place of Hamish Marshall, who suffered a rib injury while batting against Ntini in the first Test.
New Zealand awarded a first Test cap to off-spinner Jeetan Patel, 25, who joined left-armer Daniel Vettori in a two-pronged spin attack. Patel replaced Kyle Mills.
South Africa selected Hashim Amla to bat at number three, with Boeta Dippenaar opening in place of Herschelle Gibbs, who was dropped.
Without Pollock having played in 100 Tests and Gibbs in 77, South Africa went into the match with one of their least experienced teams for some time, with Nel and Amla having 21 and three caps respectively.