South African captain Graeme Smith declared himself fit despite still suffering pain from the left ring finger injury which kept him out of the third and final Test against Australia earlier this month.
But New Zealand were without fast bowler Shane Bond because of a knee injury.
South Africa, who lost all three home Tests against Australia, dropped middle order batsman Jacques Rudolph and reshuffled their batting order, with Smith opening the batting alongside Herschelle Gibbs.
Boeta Dippenaar was at number three and AB de Villiers moved from the opening slot to the middle order.
Fast bowler Andre Nel, who has struggled with a foot injury and who could not bowl Friday after falling on his shoulder, was replaced by Dale Steyn.
For New Zealand, all-rounder Jacob Oram returned for his first Test since November 2004, while swing bowler Kyle Mills came in for Bond, who suffered a recurrence of a knee injury during a warm-up match against the Rest of South Africa last weekend.
New Zealand captain Stephen Fleming and South Africans Shaun Pollock and Jacques Kallis were playing in their 100th Test. Kallis played one of his Tests for the World XI against Australia last October.
South Africa: Graeme Smith (captain), Herschelle Gibbs, Boeta Dippenaar, Jacques Kallis, AB de Villiers, Ashwell Prince, Mark Boucher, Shaun Pollock, Nicky Boje, Makhaya Ntini, Dale Steyn.
New Zealand: Stephen Fleming (captain), Hamish Marshall, Peter Fulton, Scott Styris, Nathan Astle, Jacob Oram, Brendon McCullum, Daniel Vettori, James Franklin, Kyle Mills, Chris Martin.
Umpires: Mark Benson (ENG), Daryl Harper (AUS). TV umpire: Marais Erasmus (RSA). Match referee: Ranjan Madugalle (SRI).