Graeme Smith smashed 85 to guide South Africa to a seven-wicket win over West Indies on the fourth day of the second Test on Saturday.
South Africa, who were chasing 185 to win, amassed 186 for three to level the three-match series at 1-1.
Smith, who was dropped on 18, faced 79 balls and hit 11 fours in his aggressive innings.
Earlier, Chris Gayle and Shivnarine Chanderpaul shared 70, West Indies' biggest 10th wicket partnership against South Africa, to guide the visitors to a second innings total of 262.
Ridley Jacobs and Merv Dillon held the record previously with the 64 they put on in Cape Town in 1998-99.
Gayle, who batted with a broken thumb and with a runner because of a hamstring strain, was last out for 38. His knock featured four fours and three sixes.
Chanderpaul was at the crease for five hours and faced 168 balls for his unbeaten 70. Gayle retired hurt on one when he was hit on the thumb by the fourth ball of the day, which was bowled by paceman Andre Nel.
Gayle returned to the fray and smashed the bowlers to all parts while Chanderpaul offered resolute defiance as the South Africans wilted in the sun.
Steyn, who took 4-44, finally broke through when Gayle heaved a drive to long-on, where Harris took the catch.
AB de Villiers opened South Africa's second innings with Smith in place of Neil McKenzie, who tore a calf muscle while fielding on Friday.
The third and deciding Test starts in Durban on Thursday.
SCORE BOARD
WEST INDIES (I Innings): 243
SOUTH AFRICA (I Innings): 321
WEST INDIES (II Ings, O/n: 96/4):
Ganga b Ntini 22
Ramdin c Boucher b Kallis 32
Morton c Boucher b Steyn 1
Samuels lbw b Nel 18
Chanderpaul (not out) 70
Gayle c Harris b Steyn 38
Bravo c Smith b Nel 12
Lewis c Amla b Harris 1
Taylor c Kallis b Steyn 21
Powell c Smith b Steyn 1
Edwards c Harris b Nel 21
Extras (B-4, LB-20, W-1) 25
Total (all out, 101.5 overs) 262
Fall of wickets: 1-59, 2-60, 3-81, 4-93, 5-126, 6-133, 7-163, 8-167, 9-192.
Bowling: Nel 27-12-62-3, Ntini 26-8-62-1, Steyn 19.5-7-44-4, Kallis 19-6-34-1, Harris 10-0-36-1.
SOUTH AFRICA (II Innings)
Smith c Gayle b Lewis 85
Villiers c sub (Sammy) b Bravo 23
Amla c Gayle b Lewis 37
Kallis (not out) 22
Prince (not out) 12
Extras (LB-5, NB-1, W-1) 7
Total (for 3 wkts, 35.2 overs) 186
Fall of wickets: 1-57, 2-140, 3-152.
Bowling: Powell 11-0-57-0, Taylor 6-0-31-0, Bravo 7-0-34-1, Samuels 3-0-17-0, Lewis 8.2-0-42-2.