The Sri Lankans, who needed a win to stay in the competition, relied on aggressive half-centuries from Mahela Jayawardene and Lahiru Thirimanne to score 253-8 after being sent in to bat.
Seamer Nuwan Kulasekara then picked up three wickets, effected a run-out and took a catch as the Australians were bowled out for 233 in 42.
3 overs.
Sri Lanka and England finished level with four points each, but the hosts topped the group due to a superior net run-rate and will meet Group B runners-up South Africa in Wednesday's semi-final at the Oval.
buy fildena online buy fildena online no prescription
Sri Lanka will clash with Group B winners India in the second semi-final in Cardiff on Thursday in a a repeat of the 2011 World Cup final in Mumbai which the Indians won.
The final is at Edgbaston, Birmingham, on Sunday.
Jayawardene, who became the eighth batsman to complete 11,000 one-day runs when he reached 62, anchored the middle-order with an unbeaten 84 off 81 balls.
"It felt good to get to 11,000 runs, but winning this game was the ici