Lunch Sri Lanka 75 for 3 (Mathews 34*, Starc 1 -11, Lyon 1-17) and 165 (Chandimal 72, de Silva 22, Kuhnemann 5-63, Lyon 3-57) trail Australia 654 for 6 dec by 414 runs
Australia's mood brightened considerably under clear skies in Galle as they marched towards a first Test victory after claiming eight Sri Lankan wickets across two innings before lunch on day four.
After being forced to follow-on, Sri Lanka were 75 for 3 in their second innings with Dinesh Chandimal falling for 31 to offspinner Nathan Lyon in the last over before lunch. Chandimal had struck a 69-run partnership with Angelo Mathews, who is unbeaten on 34.
Following a truncated day three, normal play has resumed and Australia remarkably might be able to wrap up victory inside four days but there is rain forecast in the afternoon. Clear weather is expected on Sunday.
Sri Lanka earlier lost 5 for 9 to be bowled out for 165 in their first innings just 45 minutes into the day's play. Lyon and left-arm spinner Matthew Kuhnemann bowled unchanged to wrap up the innings.
Kuhnemann celebrated his first Test match in almost two years with three wickets in the morning session to register his second Test five-wicket haul, while Lyon took 3 for 57.
With a massive lead of 489 runs, Australia's fourth biggest first-innings advantage, and with his bowlers well rested, stand-in captain Steven Smith as expected decided to enforce the follow-on.
Sri Lanka's troubles continued in their second innings against left-arm quick Mitchell Starc and offspinner Todd Murphy, both of whom had not bowled in almost 24 hours.
Opener Oshada Fernando in the third over fell plumb lbw to a fierce in-swinging delivery from Starc. Fernando, bafflingly, wasted a review in yet another hapless use of the technology from Sri Lanka in what has been a dismal performance in all areas.
It meant Chandimal came to the crease less than an hour after his earlier dismissal in the first innings. But he watched from the other end as opener Dimuth Karunaratne had a horrible misjudgement and was clean bowled not playing a shot against Murphy.
Sri Lanka had remarkably lost 7 for 15 across the two innings in little over an hour. But Chandimal once again played fluently until he gloved Lyon to short leg as Australia successfully reviewed the not out decision.
Australia will feel relieved after the final two sessions on day three were washed out. There had been questions raised over whether Australia batted too long in their first innings as they posted their highest total in Asia.
Resuming at 136 for 5, Sri Lanka found themselves with unexpected hope of surviving with a draw due to the wet weather. But they desperately needed Chandimal to kick on having compiled an attractive half-century on day three.
The pressure was on Chandimal and wicketkeeper Kusal Mendis as the last recognised batters before the tail.
Smith deployed spinners Kuhnemann and Lyon from the get-go as Chandimal unfurled the reverse sweep which he had used to good effect on the truncated day three.
It was a cautious start from Sri Lanka's batters with Kuhnemann extracting awkward bounce that occasionally reared off the surface. Mendis went to his favoured sweep shot against Kuhnemann and he whacked a boundary to raise Sri Lanka's 150.
But Australia were well prepared with their tactics and baited Mendis into the sweep shot with two fielders positioned deep square of the wicket. Mendis couldn't contain himself and top-edged a sweep to be well caught by a running Todd Murphy at square leg.
The burden fell to Chandimal, who had been unable to recapture his fluency from earlier in the innings. His rearguard finally ended when he missed a reverse sweep to fall lbw to Lyon as he reviewed in vain.
Sri Lanka's tail folded quickly with Kuhnemann claiming his second five-wicket haul of his Test career, after his 5 for 16 against India in Indore.