Finch forged two crucial partnerships -- 80 with his opening partner David Warner (26) and 173 with Steve Smith (73 off 59) for the third wicket -- in his 132-ball 153 knock. It was his 14th ODI hundred which was laced with 15 fours and five sixes, two of them gigantic.
Glenn Maxwell then provided the late charge with an unbeaten 25-ball 46 as Australia posted a challenging 334 for 7.
In reply, Sri Lanka were 115 for no loss at one stage but they squandered the superb start to be eventually dismissed for 247 in 45.5 overs. Skipper Dimuth Karunaratne (97) was the top-scorer for Sri Lanka, while his opening partner Kusal Perera (52) also scored a fifty.
Mitchell Starc took four wickets, while Kane Richardson claimed three and Pat Cummins scalped two.
This is Australia's fourth win in five matches, having beaten Afghanistan, the West Indies and Pakistan while losing to India in the 10-team tournament.
Sri Lanka, who came into the match with one win from four games after their previous two matches were washed out, are however running out of time after suffering their second defeat.
The Island nation scored 100 in 12.4 overs before Mitchell Starc produced a breakthrough, cleaning up Perera in the 16th over.
Runs dried up after that as Australia tightened the screws. With pressure mounting, Karunaratne ended up giving a straight catch to Maxwell at gully, just three runs short of his hundred.
Two quick wickets next saw Sri Lanka further slump to 209 for five and they never recovered after that.