Chris Woakes sparked a Sri Lanka collapse on the third day of the third Test against England at Lord's on Saturday.
Sri Lanka, well-placed at 162 for one overnight, were 218 for six at lunch -- 198 runs behind England's first innings 416.
England, bidding to complete a whitewash at 2-0 up in the three-match series, took five wickets for 56 runs in Saturday's first session.
More From This Section
Sri Lanka resumed with Kaushal Silva 79 not out and Kusal Mendis 25 not.
But they both fell for their overnight scores as Sri Lanka collapsed in overcast conditions that made batting harder than had been the case on Friday.
Sri Lanka had not added a run when Woakes had Mendis lbw with his first ball Saturday to end a partnership of 54.
It was just reward for the Warwickshire all-rounder, who saw Jonny Bairstow drop a simple catch off his bowling to reprieve Dimuth Karunaratne, eventually out for 50, on Friday.
But wicket-keeper Bairstow, whose 167 not out on Friday was his Test-best score, made no mistake Saturday when he Silva edged Stuart Broad straight to him.
Two years ago, Sri Lanka captain Angelo Mathews made a Test century at Lord's.
But the all-rounder was felled for three on Saturday, with 166 for three becoming 169 for four when he was squared up by Woakes and edged to Joe Root at second slip.
Woakes, bowling at sharp pace, almost had a wicket next ball too only for Dinesh Chandimal to inside-edge a yorker that just missed the stumps for four.
Woakes's opening spell on Saturday yielded impressive figures of two for 11 in seven overs.
Lahiru Thirimanne and Chandimal, who made an admirable 126 in the second Test, briefly resisted.
But 169 for four was transformed into 205 for six as under-pressure fast bowler Steven Finn took two wickets for three runs in 12 balls on his Middlesex home ground.
Chandimal was lbw for 19, with Thirimanne (17) edging to Root at second slip.
Left-hander Perera hit back by hitting two fours off Finn, including a defiant straight drive that whistled into the Pavilion fence.