Marlon Samuels contributed 94 as West Indies closed the first day against South Africa on 281-4 in Port Elizabeth.
West Indies captain Chris Gayle passed himself fit following a hamstring injury and took the game to the hosts with a whirlwind half-century, after his side were asked to bat at St George's Park.
He reached 50 from just 42 balls after South Africa's pacy new-ball attack of Makhaya Ntini and Dale Steyn challenged the left-hander to take them on with plenty of short-pitched deliveries.
Gayle, leading for the first time in a Test, enjoyed several moments of good fortune, but also found the boundary on 13 occasions during an opening stand of 98 in 17 overs with Daren Ganga.
Ganga's contribution was 33 before he became the first wicket to fall, edging behind after chasing a wide delivery from Andre Nel (1-62).
And Gayle followed two balls into the next over, caught by Jacques Kallis at slip after being tempted into the drive by left-arm spinner Paul Harris (1-42).
But a West Indian collapse was averted by a third-wicket stand of 64 between Runako Morton and Samuels either side of lunch.
The tourists lost just one wicket during the afternoon session - Morton caught at point for 33 after failing to control some additional bounce from Ntini (1-76).
Samuels continued to play some eye-catching strokes while adding a further 111 with Shivnarine Chanderpaul, but fell late in the day within one hit of a century.
The Jamaican right-hander was brilliantly caught above his head at second slip from a sliced drive against the express pace of Steyn.
Steyn consistently troubled the batsmen with his pace and late movement, although that was not reflected in figures of 1-82 from 20 overs.
Chanderpaul (43no) and Dwayne Bravo (0no) survived until bad light brought a premature end to the day, with West Indies well placed.