South Africa breezed to a victory target of 185 in the second Test to square the series against the West Indies.
Skipper Graeme Smith led from the front with 85 from just 79 balls as the hosts cruised home with seven wickets in hand and a day to spare.
Shivnarine Chanderpaul had earlier made 70 not out for the tourists, putting on 70 with his injured captain, Chris Gayle, for the last wicket.
Dale Steyn eventually ended the entertaining stand to pick up his fourth wicket of the innings, West Indies being bowled out for 262.
That left the home side facing what appeared a tricky task. That was until Smith came out all guns blazing alongside makeshift opening partner AB de Villiers, the pair putting on 57 in nine overs.
The normally sedate Hashim Amla made 37 before being superbly caught by Gayle after he prodded a shot off the bowling of Rawl Lewis.
The same bowler-fielder combination ended Smith's entertaining innings which had included 11 fours. However, Jacques Kallis and Ashwell Prince finished the job off with the aid of the extra half hour.
The two teams now move onto Durban for the third and final Test, which starts on January 10, with the series up for grabs.
Gayle had earlier appeared to give the West Indies, who had resumed in the morning on 96-4, a glimmer of hope when he batted through the pain of a broken thumb to make 32.
Already struggling with a hamstring injury that meant he had come in at six, the left-hander was forced to retire hurt in the first over of the day after being struck by a rising Andre Nel delivery.
He returned at the fall of the ninth wicket, hitting his very first ball back for four and smashing back-to-back sixes off Steyn before holing out to long-on.
Before Gayle arrived the only real support for the ever-reliable Chanderpaul had come from the tail.
Jerome Taylor lasted 58 balls and contributed 21 runs, although he was fortunate to be dropped with just one to his name by Smith at first slip.
Daren Powell came and went quickly but Fidel Edwards, almost batting on one leg due to a hamstring injury, managed a career-best 21 which included a straight six of Kallis.
While his partners attacked Chanderpaul just continued on at his own sedate pace to record his ninth half-century in his last 10 Test innings.