The home side slumped to 55 for 3 after winning the toss but Warner, who struggled in the first Test in Brisbane, lead Australia’s fight back.
Australia’s openers played the first nine overs safely but Jacques Kallis struck with his third delivery dismissing Ed Cowan for 10.
When Shane Watson failed to recover from a calf injury Rob Quiney kept his place but went for an eight-ball duck, leaving the Australians at 44-2. Ricky Ponting’s misery continued when he was bowled by Kallis at third ball by playing inside for just four.
At lunch Captain Michael Clarke was unbeaten on 18 while Warner was playing at 67 runs.
South Africa suffered two injuries. Before the start of play, making way for Rory Kleinveldt Star pacer Vernon Philander was withdrawn from the team with a back problem.
But the team faced a fresh injury setback when Kallis pulled up short while bowling the fourth delivery of his fourth over. He walked off grimacing for treatment for right hamstring problem.