Chasing Australia's 280 for six built around Peter Forrest's maiden ODI century, the islanders overhauled the target with four balls to spare in a match which went down the wire.
Sri Lanka now top the table with 15 points from six games, one point more than second-placed Australia.
Sri Lanka's win on Friday, their third on the trot in the tournament, left India (10 points from six matches) with the arduous task of winning both the remaining matches to make it to the final.
All the three teams have two games to go and all of them have a chance to make it to the finals. If India win both the two matches, Sri Lanka and Australia will be fighting for the other spot in the final.
The highlight of Sri Lanka's win was the classy 85 off 81 balls by captain Mahela Jayawardene and a solid 80 off 100 balls by Dinesh Chandimal. The duo shared a crucial 63 runs in 12.3 overs for the third wicket to lay the foundation of their victory.
Down the order and coming out at number eight, Thisara Perera played a cameo of 21 not out from just 11 balls to take Sri Lanka to victory at the Bellerive Oval here. He hit a boundary and a six in the penultimate over off Daniel Christian to tilt the balance in Sri Lanka's favour.
In Image: Sri Lankan batsman Nuwan Kulasekara, right, is congratulated by teammate Thissara Perera after hitting the winning runs to defeat Australia
Scorecard | Full Coverage