Cape Town - Stand-in Proteas captain AB de Villiers won the toss and decided to bat first in the one-off day-night Test against Zimbabwe at St George's Park on Tuesday.
LIVE: Proteas v Zimbabwe, Day 1 - St George's Park
De Villiers was standing in for Faf du Plessis, who was withdrawn after failing to recover fully from lower back and shoulder injuries.
De Villiers is making a comeback to Test cricket. He was the captain in his most recent two Tests, against England in January 2016, but then suffered a long-term elbow injury before deciding to take a break from long-form cricket.
"I'm very, very happy to be back," said De Villiers, who said he was not tempted to bowl first on a well-grassed pitch.
"We enjoy batting first in Port Elizabeth so hopefully we can get a good score."
Zimbabwean captain Graeme Cremer said: "We were going to bat but I'm not too worried, we were unsure of what to do."
Zimbabwe included two new caps in batsman Ryan Burl and fast bowler Blessing Muzarabani.
It is South Africa's first home day-night Test and will be played over four days, with 98 overs scheduled each day.
"It is a big occasion for us," said Cremer. "Hopefully we won't be overwhelmed by it."
Dale Steyn, who has not played in a Test since November 2016 after suffering a broken shoulder, was not included in the South African team.
Both he and Du Plessis are expected to be fit for the first Test against India, starting in Cape Town on January 5.
Teams
South Africa: AB de Villiers (captain), Dean Elgar, Aiden Markram, Hashim Amla, Temba Bavuma, Quinton de Kock (wkt), Andile Phehlukwayo, Vernon Philander, Keshav Maharaj, Kagiso Rabada, Morne Morkel
Zimbabwe: Graeme Cremer (captain), Chamu Chibhabha, Hamilton Masakadza, Brendan Taylor (wkt), Craig Ervine, Sikandar Raza, Peter Moor, Ryan Burl, Kyle Jarvis, Chris Mpofu, Blessing Muzarabani
Umpires: Richard Kettleborough (ENG), Paul Reiffel (AUS)
TV umpire: Michael Gough (ENG)
Match referee: Chris Broad (ENG)