South Africa rode on De Villiers' 13-ball 30 to post 78 for four after the match was reduced to a seven-over-a-side affair. In reply, the Sri Lankans were restricted to 46 for five as the Protea bowlers took centrestage at the Mahinda Rajapaksa International Cricket Stadium.
The loss meant Sri Lanka will enter the Super Eight stage as the second best team from the group.
Besides de Villiers, Hashim Amla (16), Faf du Plessis (13) and JP Duminy (12) chipped in with important runs to lay the foundation for a comfortable win, after being put in to bat.
In what was the first international T20 match between the two sides, the hosts always had a tough task at hands after the Proteas set a stiff target. It became even more difficult after the Lankans lost openers -- captain Mahela Jayawardene (4) and Tillakaratner Dilshan (0) -- cheaply.
The Sri Lankan batsmen simply failed to find their ground, even as Dale Steyn, Morne Morkel and Jacques Kallis came up with tremendous bowling efforts to restrict the opponents.
The bowlers managed to tightened the noose further and the likes of Dilshan Munaweera, Kumar Sangakara (13) and Thisara Perera (1) could never get the momentum going.
Steyn finished with impressive figures of two for 10 from as many overs.