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 Villie