Peter Siddle grabbed five wickets to help Australia to a 141-run lead at the end of the third day of the first Test on Sunday but only after a brilliant 147 from Sri Lanka's Tillakaratne Dilshan had stalled the hosts for much of the day.
Openers Ed Cowan (16) and David Warner (eight) added 27 without loss to Australia's first innings tally of 450 for five declared before the close of play, despite a rain disruption and some tight bowling from the Sri Lankans.
Dilshan earlier put on 161 in a record partnership with all rounder Angelo Mathews (75) to drive the tourists to 336 all out after they had resumed in a big hole at 87-4 in the morning.
Siddle finally separated them when he trapped Mathews lbw before tea after two sessions of frustration for Australia, which were compounded by an injury to seamer Ben Hilfenhaus.
Opener Dilshan followed soon afterwards - the victim of a superb yorker from left-armer Mitchell Starc - and Siddle then skittled the tail to finish with figures of 5-54.
"After lunch, we came out and attacked and bowled our partnerships, bowled the way we wanted to, built the pressure and got the rewards that were warranted," Siddle told reporters.
Australia first innings: 450-5 dec
Sri Lanka first innings
D Karunaratne c Wade b Hilfenhaus 14
T Dilshan b Starc 147
K Sangakkara c Hussey b Siddle 4
M Jayawardene lbw b Watson 12
T Samaraweera c Wade b Lyon 7
A Mathews lbw Siddle 75
P Jayawardene lbw b Siddle 40
N Kulasekara c sub (Silk) b Lyon 23
R Herath lbw Siddle 0
S Eranga not out 5
C Welegedara c Hussey b Siddle 0
TOTAL: (all out) 336.
Fall of wickets: 1-25, 2-42, 3-70, 4-86, 5-248, 6-289, 7-316, 8-320, 9-336, 10-336.
Australia second innings
E Cowan not out 16
D Warner not out 8
TOTAL: (for no wickets) 27.
"It's just about pressing forward tomorrow morning. Obviously it's going to be hard for the batters, but they'll dig in.
"We've just got to go from there, see how many runs we get to. It's going to be a tight finish, that's for sure."
Hilfenhaus managed just two balls of the eighth over of the day before pulling up with a side strain and being taken to hospital for scans. He was rated as "doubtful" to bowl again in the test by Australia's physio Alex Kountouris.
Barring a couple of run-out chances and a few loose shots, the remaining Australian bowlers failed to create many opportunities before lunch on a good Hobart track.
Dilshan, resuming on 50, had to temper his aggressive instincts but moved steadily towards his 15th Test century, spending a nervous half an hour in the nineties before finally reaching the hundred with his 16th four.
The 36-year-old's delight at completing his first century in Australia was made clear to everyone in the ground by the huge yelp he emitted as he skipped down the wicket in celebration.
"I am very satisfied with this innings, especially with the quality of the bowlers and especially with the extra bounce in the wicket in Australia," Dilshan said.
His hundred came off 148 balls and the scoring rate slowed even further after lunch as Australia's bowlers took the new ball and made the batsmen work for every run.
Siddle finally made the breakthrough when he sent down a delivery that caught Mathews on the back leg with the TV umpire confirming upon appeal that the ball would have clipped the top of the middle stump.
The 161-run partnership was the highest for Sri Lanka in Australia, beating the 144 Aravinda da Silva and Ravi Ratnayeke put on for the seventh wicket at Brisbane in 1998.
Dilshan's departure on the 273rd ball he faced precipitated something of a collapse for the tourists with the last four wickets tumbling for the addition of just 47 runs.
Siddle removed wicketkeeper Prasanna Jayawardene for 40 with another lbw decision that derived from an Australian appeal to the TV umpire, and Rangana Herath followed for a duck after facing just three balls.
The Sri Lankans were left ruing having used up their appeals as the TV pictures showed Siddle's delivery clearly hit Herath's bat before his pad despite umpire Tony Hill's lbw call.
There was no doubt about Nuwan Kulasekara's departure for 23 in the next over, however, and he was caught on the midwicket boundary by substitute fielder Jordan Silk attempting a second six in an over off Nathan Lyon.
Siddle was determined to get his five-wicket haul and he achieved that goal in the following over when Chanaka Welegedara edged the ball to Mike Hussey at gully to end the innings.
Dilshan said he thought the rest of Sri Lanka's much vaunted top order would do better in the second innings after their failure in the first.
"Our batsmen know how to adjust quickly and can chase down any target they set," he added. "First, tomorrow, we need to take a couple of early wickets and put some pressure back on them."