South Africa took the top spot in Group C after skipper A B de Villiers led them to a 32-run victory over Sri Lanka in a rain-curtailed ICC World Twenty20 match in Hanbantota on Saturday.
De Villiers scored a 13-ball 30 as South Africa posted 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.
The loss meant Sri Lanka will enter the Super Eights stage as the second-best team from the group.
Besides de Villiers, Hashim Amla (16), Faf du Plessis (13) and J P Duminy (12) chipped in with important runs to lay the ground for a comfortable victory, 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 after the Proteas set a stiff target. It became even more difficult when the Lankans lost openers captain Mahela Jayawardene (4) and Tillakaratner Dilshan (0) cheaply.
The Sri Lankan batsmen simply failed to get going against some excellent bowling by Dale Steyn, Morne Morkel and Jacques Kallis. The trio 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.