Australia's Mitchell Starc and Nathan Lyon claimed three wickets apiece but Kusal Mendis' battling half-century salvaged a difficult day one for Sri Lanka as they reached 229/9 in the second Test in Galle on Thursday.
Sri Lanka captain Dhananjaya de Silva won the toss and elected to bat.
The hosts got off to a good start as Dinesh Chandimal, Sri Lanka's best batter in their heavy defeat in the first Test, scored 74 off 163 balls and Dimuth Karunaratne made 36 in his 100th and last Test.
Once the surface began to produce turn, however, Australia spinner Lyon punished Sri Lanka, who lost four wickets for 34 runs before Kusal combined with Ramesh Mendis (28) to lift the hosts.
Their 65-run partnership lasted much of the afternoon session as both batters rotated strike to frustrate Australia, before Starc struck with the new ball, dismissing Ramesh and Prabath Jayasuriya with back-to-back deliveries.
Kusal (59) and Lahiru Kumara (0) remained at the crease at stumps.
Stand-in captain Steve Smith had a large part to play in Australia's effectiveness with the ball and made a couple of inspired decisions.
The 35-year-old brought on Travis Head after the drinks break and it immediately led to the wicket of Kamindu Mendis, while Starc's reintroduction in the next over removed Sri Lanka captain de Silva.
Spin bowling all-rounder Cooper Connolly, making his Test debut, gave away 12 runs in his three overs and failed to pick up a wicket.
Australia, who have secured their place in the final of the World Test Championship against South Africa, won the opening Test, also in Galle, by an innings and 242 runs.