Nathan Lyon (3-78) and Mitch Starc (3-37) were Australia's key men on a hot Thursday, the former orchestrating a Sri Lankan collapse before tea and the latter coming just short of a hat-trick after it.
But the hosts showed improvement from their dismal series opener, finally able to piece together partnerships on a dusty wicket already offering plenty of turn.
They finished the day at 9-229, with the deck likely to become very tricky for the batters as the Test goes on.
Kusal Mendis (59) and Lahiru Kumara (0) were unbeaten at the crease, the former batting with the kind of tenacity rarely seen from Sri Lanka in the first Test.
Lyon was the chief protagonist in a collapse of 4-34 that helped Australia regain control after Sri Lanka had won an important toss and gone to lunch at 1-87 largely thanks to Dinesh Chandimal (74).
Australia had to work hard for their breakthroughs either side of that collapse, bringing to mind the decision to drop third front-line spinner Todd Murphy.
Australia axed Murphy to hand a Test debut to allrounder Cooper Connolly (0-12), who will provide extra batting firepower in the tough conditions but bowled only three overs on the first day of his Test career.
Lyon needed only 10 minutes to swing momentum in Australia's favour after lunch.
He bowled around the wicket and snuck past the bat of retiring opener Dimuth Karunaratne (36) to break an impressive 70-run stand with Chandimal.
Fellow veteran Angelo Mathews (1 off 26 balls) never looked comfortable replacing Karunaratne and walked immediately after edging Lyon to Alex Carey.
Lyon is now only one wicket away from becoming the seventh man to reach 550 Test scalps, and third Australian after Shane Warne (708) and Glenn McGrath (563).
Starc came within inches of a hat-trick as he broke a 65-run partnership between Kusal and Ramesh Mendis (28) that had pulled Sri Lanka back off the canvas after tea.
With the new ball, the big left-armer enticed Ramesh into toeing behind to Alex Carey, before Prabath Jayasuriya (0) edged to the slips to continue an unhappy series with the bat.
A classic Starc outswinger beat Nishan Peiris on the next ball, preventing the veteran from becoming the first Australian to take a hat-trick since Peter Siddle in 2010.
It came after Carey stumped Chandimal off left-armer Matthew Kuhnemann (2-52) just after tea to mark another momentum shift in an intriguing first day.
Back tightness prevented Australian batter Josh Inglis from fielding in the third session, and he wasn't the only one in the wars.
Play stopped just after lunch so Kusal and Kuhnemann could undergo a concussion test after colliding on the pitch.
Kusal tried to sneak a single from the non-striker's end but hit the deck bouncing into Kuhnemann, who was rushing to field from his own delivery.
Australia's Usman Khawaja checked on Kusal's welfare after he came off second-best but both men were able to continue.
Kusal exacted retribution on the Australian spinners by smacking Lyon for four and then six past deep mid-wicket in consecutive balls with the kind of intent Sri Lanka lacked in the series opener.