Mitchell Johnson hit a confident half century to steady Australia to 440-8 and a 284-run lead over Sri Lanka at stumps on Thursday following a mid-order collapse on the second day of the second Test.
Johnson followed his four wickets on the first day with an enterprising knock of 73 with six boundaries after Sri Lanka claimed three wickets for just four runs before tea.
Michael Clarke earlier brought up his 22nd Test century and first at the Melbourne Cricket Ground after becoming Australia's highest-ever run scorer in a calendar year.
Clarke and Shane Watson shared a 194-run partnership until the Australia captain edged a Shaminda Eranga (2-106) delivery with the new ball to Mahela Jayawardene at third slip for 106.
Watson fell for 83 in the next over when he hooked a lofted shot off Dhammika Prasad (3-102) to the waiting hands of Thilan Samaraweera at deep square leg.
Matthew Wade added just one run before becoming Prasad's third victim of the test, caught by Eranga (2-106).
David Hussey made 34 in a 61-run, seventh-wicket stand with Johnson before falling to a superb one-handed, diving catch by Rangana Herath at the boundary off a Tillakaratne Dilshan (1-38) ball.
Johnson and Peter Siddle (13) put on a 58-run partnership for the eighth wicket until Siddle fell just before stumps.
Johnson will resume the third day with Nathan Lyon yet to score.
Clarke reached his batting milestone when he got to 56 shortly before lunch. His total for the year is now 1,595, eclipsing recently retired Ricky Ponting's previous record of 1,544 in 2005.
After resuming on the overnight score of 150-3, Clarke made a watchful start before loosening his strokes against a tame Sri Lankan attack. He timed 14 boundaries, showing little sign of the hamstring strain sustained in the first test at Hobart.
One of Clarke's fours came courtesy of an error when Eranga fielded a straight drive off his own delivery only to beat Kumar Sangakkara behind the wicket with a return that carried to the boundary.
Sri Lanka's injury woes worsened on the second morning when paceman Chanaka Welegedara pulled up while running in to bowl to Clarke and limped from the field. He left the grounds for scans on his hamstring.
The visitors lost regular wicketkeeper Prasanna Jayawardena to a fractured right thumb on Wednesday, his place behind the stumps being filled by Sangakkara.
Johnson claimed four wickets on Wednesday to help dismiss Sri Lanka in under two sessions. The only highlight of the Sri Lankan innings was a defiant 58 from Sangakkara that included his 10,000th Test run.