A much improved performance with the ball by Australia has limited Sri Lanka to a score of 226 in the third one-day international in Dambulla.
With the five-match series delicately poised at 1-1, in-form batsman Dinesh Chandimal was all that stood between Sri Lanka and disaster.
Chandimal came in at 2-23 in the fourth over and was last man out for a stylish 102 scored off 130 deliveries, as Sri Lanka were bowled out after 49.2 overs.
Chandimal survived a very tight lbw appeal on 80, leaving leg-spinner Adam Zampa (3-38) narrowly shy of his first four-wicket haul in one-day internationals.
The only other batsman to score higher than 17 was opener Tillakaratne Dilshan who made 42 on his ODI farewell.
Sri Lanka, who won the toss and elected to bat, were scoring at five an over, but the 39-year-old’s dismissal brought about a dip in fortune for the home side who lost six middle-order wickets for 82.
The match started brightly for Australia with Mitchell Starc (2-42) claiming a wicket in the first over of the innings for the third successive match, this time dismissing Danushka Gunathilaka for 5.
Debutant captain David Warner, standing in for Steve Smith, was aggressive with both his bowling changes and field settings throughout the innings.
Shaun Marsh replaced Smith in the line-up while Josh Hazlewood and John Hastings completed the additions to the side in place of Nathan Lyon and Moises Henriques.