Australia took early charge of the second Test after bowling out Sri Lanka for a hugely disappointing 174 soon after tea on the opening day in Pallekele on Thursday.
Fast bowler Ryan Harris led the way with three wickets and Trent Copeland, Mitchell Johnson and Nathan Lyon picked up two each in good batting conditions at the Pallekele International Stadium.
Australia, hoping to clinch the three-match series after winning the first Test in Galle by 125 runs, raced to 60 for no loss before bad light ended play 5.2 overs early.
Shane Watson returned unbeaten on 36 with six boundaries and Phillip Hughes was on a watchful 23 at stumps.
The hosts, electing to bat after winning the toss, never recovered after they lost half the side for 76 by lunch, the top three falling by the eighth over with the score at just 14.
Vice-captain Angelo Mathews cracked three sixes and six boundaries in an aggressive 58 to boost the total, but seven batsmen failed to reach double figures.
Former captain Kumar Sangakkara chipped in with 48, adding 43 for the fourth wicket with Thilan Samaraweera and 52 for the sixth with Mathews.
The elegant left-hander looked set for a major knock when he lost his wicket to part-time bowler Mike Hussey, whose slow-medium delivery was driven to Hughes at short-cover.
It was only the third wicket in 61 Tests for Hussey and compounded Sri Lanka's woes on a wicket that had rolled out well in favour of the batsmen.
Harris struck the first blow in his second over when he forced Tharanga Paranavitana to edge a catch to wicket-keeper Brad Haddin.
It was the second successive duck for the left-handed opener, who had failed to score in the second innings at Galle.
Sri Lankan captain Tillakaratne Dilshan made four when he tried to leave a ball from Copeland which swung back sharply to clip his off-stump.
Copeland also removed Mahela Jayawardene in his next over as Hussey dived to his left at gully to pick up a stunning catch.
Jayawardene, whose classy century in Galle failed to save Sri Lanka, managed only four this time.
Sri Lanka would have lost Sangakkara cheaply, but Shane Watson spilled a catch at first slip off Johnson when the batsman was on 27.
Samaraweera was dismissed 20 minutes before lunch, caught behind off Harris for 18, while Prasanna Jayawardene threw away his wicket just before the break.
The Sri Lankan wicket-keeper smashed off-spinner Lyon for a six and four, but holed out in the deep off the last ball of the over.
Sangakkara's fall in the afternoon session hastened another collapse before Mathews lashed out in the company of the tailenders.
Australia made one change from the side that won the first Test, bringing in debutant Shaun Marsh for former captain Ricky Ponting, who has returned home for the birth of his second child.
The left-hander received his baggy green Australian cap before the start of play from his father, Geoff Marsh, a former opening batsman who played 50 Tests and 117 one-dayers before retiring in 1992.
Sri Lanka included leg-spinner Seekkuge Prasanna for his maiden Test match after both Rangana Herath and Ajantha Mendis were ruled out with injuries.
Herath, who bagged a five-wicket haul in Galle, injured a finger in practice, while Mendis woke up on Thursday with a back strain.