Pakistan were dismissed for their lowest Test score on Saturday, South Africa skittling the tourists for just 49 in their first innings at the Wanderers.
Having posted 253 in Johannesburg on day one of the first Test on Friday - all-rounder Jacques Kallis the only player to reach the fifty mark - Pakistan looked to be heading into day two with the upper hand.
But Dale Steyn ripped through the Pakistan battling line-up, finishing with amazing figures of six for eight from 8.1 overs. Azhar Ali (13) and captain Misbah-ul-Haq (12) were the only visiting batsmen to make double figures.
Proteas skipper Graeme Smith opted not to enforce the follow-on, meaning the hosts will start their second innings with a commanding 204-run lead.