Sri Lanka, who lost the toss and were sent out to bat on a dry, turning wicket, set the visitors a target of 228, but Australia successfully chased them down with 19 balls to spare to give them the lead in the five-match series.
Earlier in the day, Mitchell Starc and James Faulkner took seven wickets between them to make life tough for the hosts.
Starc finished with three wickets for 32 runs in his 10 overs and drew first blood early in the Sri Lankan innings when he bowled opener Kusal Perera on one.
He became the quickest bowler in history to reach 100 ODI wickets, passing the record set by Pakistan’s Saqlain Mushtaq nearly two decades ago, when he dismissed Dhananjaya de Silva for two.
Faulkner ended with four for 38, including two wickets in the same over.
First, he enticed Kusal Mendis into top-edging a slow offcutter to Travis Head at midwicket, before tempting Angelo Mathews into a drive that was caught superbly by Head at point to send the Sri Lanka skipper back to the pavilion with a duck.
Dinesh Chandimal top-scored for the hosts with a patient unbeaten 80 that contained just three boundaries, but his efforts were not enough to prevent Australia getting their first win of the tour after being whitewashed 3-0 in the test series.
Finch got Australia off to a blistering start, hitting seven boundaries and two sixes en route to 56 off 46 deliveries, while Smith struck five boundaries during a more measured innings that yielded 58 runs off 124 balls.
Smith and George Bailey piled on 62 runs for the fourth wicket, before the Australian skipper fell to an outstanding catch from substitute fielder Danushka Gunathilaka.
Australia had been given a solid platform, allowing them to ease their way to victory, with Faulkner and Starc, both not out on five apiece, easing them over the line.