Fast bowler Ryan Harris made quick work of dismissing three of Sri Lanka's top batsmen to put Australia in command on the third day of the first Test in Galle and make the home team's task of chasing down 379 runs look even more daunting on Friday.
Sri Lanka closed on 120 for five wickets as Mahela Jayawardene's battling half century sought to repair some of the early damage done by Harris.
The right arm pacer captured Tharanga Paranavitana with the first ball of the second innings for lbw and then bowled Sri Lanka captain Tillakaratne Dilshan in his fourth over for 12, leaving Sri Lanka struggling at 15 for two wickets.
He later bowled wicketkeeper-batsman Prasanna Jayawardene for a duck as the home team found themselves on 68 for five.
Sri Lanka lost Kumar Sangakkara for 17 shortly after tea when he was forced to edge a short pitch ball by Shane Watson, giving a catch to Michael Hussey at gully.
Thilan Samaraweera, who was caught behind off Mitchell Johnson, and Prasanna Jayawardene did not add to the score.
Mahela Jayawardene, however, held the Sri Lankan innings together with the support of Angelo Mathews.
He ended the day with an unbeaten 57, sharing an unbroken sixth wicket partnership of 52 with Mathews who was on 32 at the close.
Earlier, Australia were all out for 210 with Sri Lanka left arm spinner Rangana Herath collecting a career-best five-wicket haul in their second innings.
Herath captured five wickets for 79 runs, taking his tally to eight wickets in the match for 133 runs on a pitch that has historically favoured spinners, especially in the final two days of a Test match.
Australia, resuming on 115 for six, added a further 95 runs on the third day after play was delayed due to a wet outfield.
The tourists were helped by their lower order, with the last three batsman adding 80 runs after the team had been struggling on 130 for seven at one stage.
Pakistan-born left-handed batsman Usman Khawaja and Harris added 40 runs for the eighth wicket, while debutants Trent Copeland and Nathan Lyon scored 32 runs for the last wicket.
Herath dismissed Johnson for eight runs as the Australian paceman tried for a sweep but lofted after edging and was caught by wicketkeeper Prasanna Jayawardene.
Herath also caught Harris off his own bowling for 23.
On Thursday, Sri Lanka were all out for a paltry 105 with debutant right arm spinner Lyon taking five wickets for 34 runs including a wicket on his first ball.
The tourists beat Sri Lanka 3-2 in the one-dayers ahead of the three-match Test series.
Australia (1st innings): 273
Sri Lanka (1st innings): 105
Australia (2nd innings): (overnight 116 for 6)
S Watson c Samaraweera b Welegedara 0
P Hughes lbw b Dilshan 28
R Ponting c Herath b Lakmal 4
M Clarke c P Jayawardene b Herath 60
M Hussey c Paranavitana b Herath 15
Usman Khawaja lbw b Welegedara 26
B Haddin c M. Jayawardene b Herath 0
M Johnson c P. Jayawardene b Herath 8
R Harris c & b Herath 23
T Copeland not out 23
N Lyon c Samaraweera b Dilshan 13
Extras: (B-4, LB-4, NB-2) 10
Total: (all out, 59.2 overs) 210
Fall of wickets: 1-0, 2-5, 3-61, 4-110, 5-110, 6-112, 7-130, 8-170, 9-178.
Bowling: Welegedara 6-3-13-2, Lakmal 8-3-23-1, Herath 23-3-79-5, Randiv 14-3-61-0, Dilshan 8.2-1-26-2.
Sri Lanka (2nd innings):
T Paranavitana lbw b Harris 0
T Dilshan b Harris 12
K Sangakkara c Hussey b Watson 17
M Jayawardene not out 57
T Samaraweera c Haddin b Johnson 0
P Jayawardene b Harris 0
A Mathews not out 32
Extras: (B-1, LB-1) 2
Total: (for five wickets, 52 overs) 120
Fall of wickets: 1-0, 2-15, 3-52, 4-63, 5-68.
Bowling: Harris 9-2-24-3, Copeland 9-5-8-0, Johnson 10-3-20-1, Lyon 12-2-41-0, Clarke 2-0-6-0, Watson 8-4-14-1, Ponting 2-0-5-0.