Opening batsman De Villiers, battling cramps, heat exhaustion and dehydration, hammered 146 as South Africa thrashed 356 for four after being sent in to bat.
De Villiers and Jacques Kallis (81) put on 170 for the second wicket to set up South Africa's big total on a pitch which did not prove to have as much life as West Indian captain Brian Lara expected when he won the toss.
With De Villiers and Kallis scoring 50 runs in the second five-over powerplay, Lara delayed the third and final powerplay until the 45th over.
It cost 77 runs in five overs as Herschelle Gibbs and Mark Boucher both slammed quickfire half-centuries.
De Villiers was treated for cramps when he was on 91 and South African captain Graeme Smith came on as a runner for him when he was on 102.
Barely able to move, De Villiers went on the slog, hitting four sixes off five balls two each off spinners Chris Gayle and Ramnaresh Sarwan as he raced from 100 to 146 off 16 balls.
The opener faced 130 balls and hit 12 fours and five sixes.
Kallis, who needed treatment after straining a ligament in his left ankle when he was on 39, was dropped by wicketkeeper Denesh Ramdin, standing up to the wicket off Dwayne Bravo, when he had 40. He went on to score 81 off 86 balls with six fours and a six.
Gibbs, who had been a doubtful starter because of a calf injury, made 61 not out off 40 balls, while Boucher hit the third-fastest World Cup fifty, off 22 balls before he was caught for 52 off the next delivery.
The West Indies, needing to win all three of their remaining Super Eight matches to keep their hopes of reaching the semi-finals alive, made three changes to the side that lost by 113 runs against Sri Lanka in Guyana in their most recent match nine days ago.
Local favourite, Grenada batsman Devon Smith, replaced Marlon Samuels, while Kieron Pollard and Corey Collymore came in for Dwayne Smith and Jerome Taylor.
Collymore was the only bowler to turn in respectable figures, taking two for 41 off ten overs.
South Africa, who have gained one more win than the West Indies in the Super Eight phase but also might need to win all their last three matches, made two changes.
Batsman Loots Bosman replaced Justin Kemp, while all-rounder Andrew Hall returned in place of Charl Langeveldt.
South Africa: 356 for 4 in 50 overs (de Villiers 146, Kallis 81, Gibbs 61 n o, Boucher 51; Collymore 2 for 41, Gayle 1 for 42) Vs West Indies (yet to bat).