South Africa's pace bowlers took advantage of overcast weather and a helpful pitch as they bundled out Pakistan for 107 on Sunday.
Then South African opening batsmen Graeme Smith and AB de Villiers hammered a demoralised Pakistan bowling attack to take their side to victory in only 14 overs, with Smith finishing the match by smashing Abdul Razzaq over midwicket for six.
The win gave South Africa a 2-1 lead in the five-match series.
Captain Inzamam-ul-Haq was the only batsman able to play a substantial innings for Pakistan, making 45 not out.
South Africa's bowlers shared the wickets, although Shaun Pollock was outstanding, taking two for 13 in 10 overs.
Wicketkeeper Mark Boucher equalled the world record for dismissals in a one-day international, taking six catches.
South African captain Smith's decision to send Pakistan in on an overcast day paid off as the visiting batsmen struggled on a pitch which offered movement through the air and off the pitch. Rain had fallen during the two days before the match.
Pollock set the tone with a superb opening spell in which he took two for eight in eight overs.
Pollock had Imran Nazir caught behind for nought off the fourth ball of the innings when Nazir got an inside edge to a ball which cut back sharply. Pollock did not concede a run until he bowled a wide in his fourth over.
The total was only six in 7.3 overs when Kamran Akmal was second man out after slipping in mid-pitch when he was sent back by Younis Khan, who played the ball towards Herschelle Gibbs in the covers.
Mohammad Yousuf looked the most composed of the top order batsmen but after making 21 he was caught behind off Andrew Hall, trying to nudge the ball towards third man.
Inzamam and Shoaib Malik put on 46 for the fifth wicket in the best stand of the innings before Malik was caught down the legside by Boucher off Justin Kemp.
The lower order batsmen were swept aside, while even Inzamam found it difficult to score runs against accurate bowling, backed by athletic fielding. Inzamam made his runs off 97 balls, hitting four of only nine boundaries in the innings.
Boucher joined Australia's Adam Gilchrist, England's Alec Stewart and Ridley Jacobs of the West Indies in making six dismissals. Gilchrist has performed the feat four times.
South Africa's reply was in complete contrast to the Pakistan innings.
Mohammad Asif, Pakistan's most reliable bowler, started uncharacteristically by spraying his first delivery far down the legside for five byes. AB de Villiers hit a two and a four as the first over cost 11 runs.
De Villiers and Smith both went on the attack, raising 50 off 51 balls and then accelerating as they took their side to the target off only 84 deliveries.
De Villiers made 50 not out off 44 balls with seven fours and a six, while Smith made an unbeaten 56 off 40 balls with six fours and two sixes.
Pakistan's misery was underlined when De Villiers gave the only chance of the innings. He tried to slog left-arm spinner Adbur Rehman out of the ground but sent the ball spiraling towards deep midwicket. Mohammad Asif was too casual in reaching the ball and dropped it. The batsmen ran two - and then stole an overthrow after a poor throw.
Pakistan were without Shahid Afridi, the all-rounder who was banned for four matches by match referee Chris Broad for jabbing a bat at a spectator during the first match in Centurion last Sunday. Afridi was due to return home Sunday.
Afridi was replaced by Rehman.