Sadeera Samarawickrama and Dinesh Chandimal hit unbeaten centuries before Prabath Jayasuriya claimed a five-for as Sri Lanka put visitors Ireland to the sword on the second day of the first Test in Galle.
Sri Lanka declared their first innings on a mammoth 591-6 before reducing Ireland to 117-7, still needing another 274 to avoid the follow-on.
Lorcan Tucker was batting on 21 at the close, with Andy McBrine alongside him on five.
Playing only their fifth-ever Test, and seeking their first win since attaining the status in 2017, Ireland could only demonstrate their weakness against a team ranked seventh in the world.
Left-arm seamer Vishwa Fernando – playing his first Test in 10 months – dismissed Murray Commins for a golden duck and captain Andy Balbirnie in just the second over of the Ireland innings.
Harry Tector (34) and James McCollum (35) put together a 70-run partnership before left-arm orthodox spinner Jayasuriya wreaked havoc with a double-wicket maiden, claiming the scalps of Tector and Curtis Campher.
In his next over, Jayasuriya cleaned up top scorer McCollum with a peach of a delivery that pitched on middle stump, spun past the bat and clipped the top of off-stump.
Jayasuriya next had Peter Moor caught behind and completed his fifth five-wicket haul when George Dockrell was trapped lbw.
Earlier, wicketkeeper-batsman Samarawickrama celebrated his return to Test cricket with a maiden hundred after last featuring in a Test in 2017.
His 104* was the first time a Sri Lankan wicketkeeper has made a century in Test-match cricket in seven years, the previous being Kusal Perera in 2016.
Chandimal was unbeaten alongside him on 102 at the declaration, posting his 14th Test ton against tired Irish bowlers who toiled in hot conditions.
The pair added an unbroken 183 runs for the seventh wicket, after captain Dimuth Karunaratne (179) and Kusal Mendis (140) posted centuries earlier in the innings.
Chandimal, 18 overnight, was the first to reach three figures with an elegant punch for four through extra cover.
The 27-year-old Samarawickrama joined him in the next over, his 104 the highest score by a Sri Lankan No 8.
The match is the first-ever Test between Sri Lanka and Ireland, who have lost all four of their previous Tests, including against Bangladesh this month.
© Agence France-Presse