With rain predicted for Monday, Steyn charged in and took four wickets, including the key scalp of Australia captain Michael Clarke, as the tourists lost 10 wickets for 90 runs having looked comfortable at 126 without loss chasing a record 448 for victory.
Only opener Chris Rogers showed any real resistance with a fine 107, this third ton in four Tests, as he shared a century opening stand with David Warner (66), but for the remainder it was a procession as none of the other batsmen reached double figures.
The result left the three-match series level at 1-1 with the third test starting in Cape Town on Saturday.
After JP Duminy had removed Warner and Morne Morkel grabbed the wicket of Alex Doolan (five), Shaun Marsh picked up a pair in the match and now has six ducks in his last 11 Test innings. He was lbw to Vernon Philander.
Then began the Steyn onslaught as Clarke (one) was brilliantly caught by Faf du Plessis at second slip and Steve Smith trapped lbw first ball.
That wicket showed evidence of reverse swing and Steyn produced more as he clattered into the middle stump of Brad Haddin (one) for the second time in the match.
Mitchell Johnson was the fourth lbw victim of the innings when he was struck on the pads by Philander.
Ryan Harris (six) was also trapped in front of his stumps but the key moment came when, with just seven minutes remaining in the day's play, Rogers was run out trying to take a quick single to substitute fielder Alviro Peterson.
Nathan Lyon (zero) was the final wicket to fall, lbw to Dean Elgar and although replays showed he had hit the ball, Australia had used up their reviews.
South Africa earlier declared their second innings on 270 for five as Hashim Amla plundered an unbeaten 127, his 21st Test century to move joint third on South Africa's all-time list with Gary Kirsten, still behind Graeme Smith (27) and Jacques Kallis (45).
Image: Dale Steyn of South Africa celebrates getting the wicket of Ryan Harris of Australia
Photograph: Morne de Klerk/Getty Images
ODI Rankings: India aim to cement No 2 position
Should Kohli replace uninspiring captain Dhoni permanently?
New Zealand Tests Report Card: Thumbs down for Dhoni, Vijay
'India to a certain degree deserves a say in what happens'
Back injury renders Gayle unfit for England ODIs