In worrying signs for the Australia, Josh Inglis remained off the pitch with back soreness as the visitors rolled the hosts for 257 runs within half an hour of play beginning on Friday morning.
Resuming on 9-229, Sri Lanka did well to last 7.4 overs before paceman Lahiru Kumara (2) edged Matt Kuhnemann to the slips.
Tenacious No.7 Kusal Mendis (85no) hit the highest score of any Sri Lankan batter so far in this two-Test series but was stranded after helping the hosts add 28 runs on a hot Friday morning.
Mitchell Starc (3-37), Kuhnemann (3-63) and Nathan Lyon (3-96) shared the bowling honours.
At stumps on day one, Australia's bowling coach Dan Vettori admitted the pitch had not spun as violently as the tourists expected.
But signs of degradation were clear late on Thursday and Friday morning, with Vettori expecting victory could go to the side able to capitalise on the pitch before it became any wilder.
"First-innings runs are going to play a huge role in whoever wins this game," Vettori said at stumps.
"It's going to be a tricky wicket the whole way along."
Australia had been confident after day one that Inglis would return to the field after missing the third session with back soreness.
He completed some stretches on the pitch before play began but was again absent, replaced in the field by Nathan McSweeney.
Inglis's injury means he may be forced to bat lower than his usual No.5, commensurate with the time that has elapsed since he was last on the field.
It was a frustrating start to the morning for the tourists as Kusal used the sweep shot to better effect than any Sri Lankan batter this series to fight on.
Australia were so confident Kusal had edged Nathan Lyon down leg to Alex Carey for the final wicket that Travis Head, Usman Khawaja and Marnus Labuschagne began walking from the pitch.
But Australia's review showed no spike on ultra-edge and the trio had to trudge back from close to the boundary rope as Kusal fought on from 77.
He hit two more fours in that over to become the first Sri Lankan this series to  pass 80 runs, contributing 31 runs in a 33-run stand for the last wicket.
Australia began their reply with openers Travis Head and Usman Khawaja out to replicate the positive starts that put the visitors on track for a huge win in the series opener.