Shivnarine Chanderpaul and Brendan Nash cashed in on a flat pitch to score centuries and lift West Indies to 424 for four on Day three of the second Test against South Africa in St Kitts on Sunday.
The Windies finished 119 runs behind the touring side, who declared their first innings on 543 for six, and the match was heading for a draw with two days remaining.
Chanderpaul reached the close on 151 not out, including 10 fours and a six, but Nash fell for 114.
The pair added 220 runs for the fourth wicket, moving the score from 151 for three to 371 when Nash was run out by brilliant fielding from AB de Villiers after hitting 14 fours and one six.
Chanderpaul started his innings nervously, sparring uncharacteristically at deliveries outside off stump, but settled down to play with familiar fluidity as he took 114 balls to reach fifty and another 74 to get to his 22nd century in his 125th Test.
Nash, who scored his maiden Test hundred in the same match Chanderpaul last reached three figures a year ago against England in Trinidad, struck 12 fours and a six.
Nash joined Chanderpaul after Narsingh Deonarine had contributed 65 and Chris Gayle made 50.
Morne Morkel completed figures of two for 87 from 21 overs and Dale Steyn was the other wicket taker along with De Villiers' running out of Nash with a direct hit after he wandered too far out of his crease.
South Africa won the first Test in the three-match series.
Scoreboard:
South Africa (1st innings): 543-6 declared
West Indies (1st innings):
C Gayle b Morkel 50
T Dowlin c de Villiers b Morkel 10
N Deonarine b Steyn 65
S Chanderpaul not out 151
B Nash run out (de Villiers) 114
D Bravo not out 21
Extras (lb-6, w-2, nb-5): 13
Total: 424 for 4
Fall of wickets: 1-13, 2-106, 3-151, 4-371
Bowling: D Steyn 20-3-70-1 (nb-1, w-1), M Morkel 21-5-87-2 (nb-1), L Tsotsobe 19-3-62-0 (3-nb), P Harris 35-1-129-0, J Kallis 16-4-51-0 (w-1), A Petersen 5-0-19-0.