Tillakaratne Dilshan led a fighting counter-attack with a pugnacious century as Sri Lanka trailed Australia by 141 runs with two days to play in the first Hobart Test on Sunday.
Dilshan batted for almost seven hours for his 147 and shared in a record Sri Lanka stand in Australia with Angelo Mathews to get the tourists within 114 runs of the home side's first innings of 450 for five declared.
The Australians tightened their grip on the match reaching third day stumps at 27 without loss and were in the box seat to press on for their first victory of the domestic summer after losing the recent three-Test series to South Africa.
At the close, Ed Cowan was on 16 with David Warner not out on eight.
Sri Lanka, boosted by Dilshan's 15th Test century and good play from Mathews (75) and Prasanna Jayawardene (40), were bowled out for 336.
Peter Siddle, leading the Australian attack in the absence of injured Ben Hilfenhaus, knocked over the Sri Lankan tail to finish with five for 54 off 25.3 overs.
Dilshan's innings-saving effort came to an end when he was yorked by Mitchell Starc in the 98th over some 30 minutes after tea.
The 36-year-old right-hander hit 21 boundaries off 273 balls and was primarily responsible for getting Sri Lanka past the 251 follow on after the tourists were in strife at 87 for four at stumps on Saturday.
It was Dilshan's second century against Australia following his 104 at Galle in 2004.
He shared in a record 161-run stand with Mathews for the fifth wicket that took the momentum away from the Australians for a large part of the third day.
It eclipsed Aravinda de Silva and Ravi Ratnayeke's previous best stand for Sri Lanka down under of 144 for the seventh wicket at Brisbane in 1989.
Siddle triggered a late wicket collapse, trapping Prasanna Jayawardene and Rangana Herath (0) both leg before wicket, before Nuwan Kulasekara was caught in the deep by substitute Jordan Silk off Nathan Lyon for 23.
Siddle mopped up the innings with the wicket of Chanaka Welegedara for a duck, snapped up at gully by Mike Hussey leaving the Australians 14 overs to negotiate to stumps.
Australia, down a bowler with Hilfenhaus off the field with a side strain, toiled hard for most of Sunday, with only Mathews's wicket to show for their efforts up to tea.
Vice-captain Mathews, who is expected to take over as skipper after Mahela Jayawardene announced he would be stepping down as captain after the Australia tour, was another Siddle lbw victim.
Australia's wicketkeeper Matthew Wade was left red-faced by a botched stumping of Kulasekara on three when he dropped the ball after the fast bowler jumped down the wicket to spinner Nathan Lyon.
Swing bowler Hilfenhaus left the field in the opening hour after delivering just two balls of his 13th over. Team officials said he had a left side strain and was taken to hospital for scans.
He had figures of 1-30 after claiming the wicket of Dimuth Karunaratne for 14 on Saturday.
Australia's fast bowling ranks have been hit hard with James Pattinson (side), Patrick Cummins (back) and Josh Hazlewood (foot) all out of action.
Pattinson was ruled out for the Test season after suffering his injury during the second Test against South Africa in Adelaide, while Cummins is aiming to recover from stress fractures to his back for next year's Ashes tour.