The Proteas are unchanged from the first test at the Wanderers, which they won by 211 runs, sticking with Robin Peterson as their spinning choice over Imran Tahir.
The wicket is expected to be lively for the seamers on the first two days but dry out over the weekend and start taking turn.
Pakistan have made two changes to their side, both enforced by injury. Seamer Junaid Khan is out with a thigh problem and has been replaced by seven-footer Mohammed Irfan, who makes his test debut at the age of 30.
Rahat Ali, who made his debut in the first test, is also battling with injury and has been replaced by the 34-year-old seamer Tanvir Ahmed, who has four previous test appearances.
"We would have batted first anyway," Pakistan captain Misbah-ul-Haq said at the toss. "Junaid Khan and Rahat are injured. Tanvir Ahmed and Mohammad Irfan are playing. Our target is to lose less wickets in the first few hours."
South Africa - Graeme Smith (captain), Alviro Petersen, Hashim Amla, Jacques Kallis, AB de Villiers, Faf du Plessis, Dean Elgar, Robin Peterson, Vernon Philander, Dale Steyn, Morne Morkel.
Pakistan - Misbah-ul-Haq (captain), Mohammad Hafeez, Nasir Jamshed, Azhar Ali, Younis Khan, Asad Shafiq, Sarfraz Ahmed, Umar Gul, Saeed Ajmal, Tanvir Ahmed, Mohammad Irfan.