The defeat effectively ended the hosts' hopes of reaching the semi-finals.
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.
The West Indies lost four wickets inside the first 20 overs and managed 289 for nine in reply, led by a stroke-filled 92 off 75 balls by Ramnaresh Sarwan.
The hosts need a series of freak results to make the last four.
If West Indies win their last two matches, against Bangladesh and England, they will only have six points. New Zealand and Australia already have eight, while Sri Lanka and South Africa are both on six.
West Indies also have a poor net run-rate the decider in the event of a tie on points.
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 cramp 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.
De Villiers 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.
There were 14 sixes in the South African innings.
Corey Collymore was the only West Indian bowler to turn in respectable figures, taking two for 41 off ten overs.
The West Indies made a poor start when Shivnarine Chanderpaul drove Shaun Pollock to Smith at mid-off in the second over.
Chris Gayle and Devon Smith put on 60 off 53 balls for the second wicket but were out in successive overs.
De Villiers was put on a drip after his innings but returned to the field briefly to take a diving catch at point off Andre Nel to dismiss Smith, while Gayle was run out by a direct hit from Ashwell Prince at midwicket.
Lara and Sarwan added 50 before Lara charged down the wicket to drive Kallis but edged the ball into his stumps, virtually ending the match as a contest.
With South Africa falling behind in their over rate Smith brought himself on to bowl off-spinners and tailender Daren Powell slogged 48 not out off 36 balls.