Seamer Shane Watson chipped in with three wickets in 10 balls as Australia, restricted to 273 on the first day, gained a massive lead of 168 runs at the Galle International Stadium.
Opener Tharanga Paranavitana's 29 was Sri Lanka's top score on a dusty wicket as the last seven wickets fell for just 18 runs.
Off-spinner Lyon never looked back after taking a wicket with his first delivery in Test cricket -- the first Australian in 117 years to achieve the feat.
Brought on after the morning drinks break, the 23-year-old struck immediately as Kumar Sangakkara edged the first ball towards the slips where skipper Michael Clarke dived to his left to take a low catch.
Lyon, who served on the Adelaide Oval groundstaff till a year ago, then ran through the tail to justify his much-criticised selection for the tour after just four first-class matches.
He is only the 14th bowler in history to take a wicket with his first ball in Test cricket, and the second Australian since Arthur Coningham did it against England in 1894.
Watson ripped through the middle order after Lyon and fellow debutant Trent Copeland had taken care of the top order in the morning session.
All-rounder Watson extracted considerable reverse swing with the old ball to trap Thilan Samaraweera, Prasanna Jayawardene and Paranavitana leg-before.
Copeland, asked to share the new ball with Ryan Harris ahead of the experienced Mitchell Johnson, saw his first delivery hit for a boundary before the second fetched him a wicket.
Sri Lankan captain Tillakaratne Dilshan, who had disdainfully smacked the first ball to the cover fence, attempted a similar shot off the next, but found Ricky Ponting standing in the way.
The 36-year-old former captain dived to his right at short cover to snare a brilliant catch.
Sri Lanka, who went to lunch on 54-3, were lucky not to lose the wicket of Paranavitana off the first delivery on resumption.
The batsman was given leg-before but asked for a television review and survived as replays indicated Johnson had bowled a no-ball.
Paranavitana and Samaraweera added 43 for the fourth wicket, before Watson and Lyon swung the Test Australia's way.