Australia captain Ricky Ponting and allrounder Andrew Symonds have been ruled out of the match with abdominal and thigh strains respectively.
Paceman Stuart Clark has recovered from a case of bruised ribs and will play and batsman Phil Jaques, who was called up this week, was also selected.
Australia seamers Mitchell Johnson and Mick Lewis were left out of the side that lost the first game in the five-match series by six wickets in Centurion on Sunday.
Adam Gilchrist retained the captaincy he assumed on Sunday.
South Africa named an unchanged team.
Teams: South Africa: Graeme Smith (captain), Boeta Dippenaar, AB de Villiers, Herschelle Gibbs, Justin Kemp, Shaun Pollock, Mark Boucher, Robin Peterson, Andrew Hall, Makhaya Ntini, Andre Nel.
Australia: Adam Gilchrist (captain), Simon Katich, Phil Jaques, Damien Martyn, Michael Clarke, Michael Hussey, Shane Watson, Brad Hogg, Brett Lee, Stuart Clark, Nathan Bracken.