The home side were in command before a Boxing Day crowd of 67,138 at the sun-bathed Melbourne Cricket Ground, after winning the opening Test in Hobart by 137 runs.
Kumar Sangakkara joined the 10,000 runs club and Mitchell Johnson claimed his 200th Test wicket before the Australian batsmen made Sri Lanka pay for their paltry first innings total made off just 43.4 overs, with David Warner clobbering 62 off 46 balls.
Despite a late flurry of wickets Australia finished the day well on top. At the close they were 150 for three with Michael Clarke, who passed a fitness test on a strained hamstring, not out 20 and Shane Watson on 13.
"We're definitely in a strong position," Johnson said. "I think our two openers started exceptionally well.
"I'm sure they would have liked to have gone on and make hundreds and you don't want to be run out in Test match cricket, but we're three down, we're 150 and we've got a great wicket.
"We've just got to move on from that and we have a big day ahead of us to put on some more runs."
The Sri Lankans were rueing dropped catches off both batsmen late in the day.
Their only bright spot was Sangakkara's 58, which was ended by a stunning running catch by wicketkeeper Matthew Wade to give Johnson his 200th wicket in his 49th Test.
Sangakkara was the equal-fastest to the 10,000 milestone, reaching it in his 195th Test innings as did Sachin Tendulkar and Brian Lara.
"I think everybody watching thoroughly enjoyed the elegance of the player. He really is something special when he plays like that," Sri Lanka coach Graham Ford said of Sangakkara's innings.
"And to achieve what he has achieved is absolutely amazing. So for us, although it was a disappointing day in many ways, that brought a lot of joy to the lads."
Johnson, recalled after being left out in Hobart, claimed four for 63 off 14 overs to finish off the sorry Sri Lankans.
The Australians then made a lively start with Warner and Ed Cowan putting on 95 off 106 balls, Warner blazing his fourth Test half-century off 34 balls before falling to a trap laid by medium-pacer Angelo Mathews.
Mathews tempted him with a short ball and the opener duly obliged by finding Dhammika Prasad at deep mid-wicket.
Phil Hughes was run out for 10 in a dreadful mixup with Cowan in the 23rd over, well beaten home by Tillakaratne Dilshan's throw to the striker's end.
Cowan was out for 36 in the following over, flashing at Prasad. Mahela Jayawardene took a hot catch in the slips.
The pace attack maintained a good line and length but the Sri Lankan batsmen largely self-destructed with poor shot-making.
Debutant Jackson Bird captured his first Test wicket with his 10th delivery when he moved the ball away from left-hander Dimuth Karunaratne who was taken by Wade for five.
Hobart centurion Dilshan fell three overs later when Johnson got one through his defences which cannoned into the off-stump for 11.
The tourists' woes deepened when Mahela Jayawardene was out three balls after first-hour drinks for three, continuing a dismal scoring series for the skipper.
Peter Siddle moved one off the pitch and enticed an edge off Jayawardene's bat to give Wade his second catch and leave the Sri Lankans 37 for three in the 13th over.
Thilan Samaraweera was out to a rash shot to the third ball after lunch, top-edging Bird to Warner at short mid-wicket for 10.
Wicketkeeper Prasanna Jayawardene, whose further participation in the match is in doubt with a hairline fractured thumb, went to a Johnson lifter for 24, caught in the slips by Hughes.
Johnson struck again next ball with a brutish riser that struck Prasad's gloves for Wade's third catch of the innings.
Rangana Herath survived Johnson's hat-trick ball before Sangakkara became Johnson's fourth victim of the innings.