Chris Woakes finished with figures of 3-31 as England bowled Sri Lanka out for 288 to take control of the third Test at Lord's.
Kusal Mendis and Angelo Matthews both fell victim to Woakes' sublime bowling while Steven Finn also chipped in with figures of 3-59.
The tourists started the day on 162-1 but they fell cheaply, with Kusal Perera (42) the only member of the team who resisted.
England's second innings started poorly, with under-pressure Nick Compton out for just 19, as England lost three wickets for just five runs.
Captain Alastair Cook did not open after picking up a bruised knee while fielding but scans suggest he should be able to bat on Sunday.
Nuwan Pradeep claimed three crucial wickets as Joe Root, James Vince and Jonny Bairstow all fell as England eventually settled to finish the day on 109-4.
They lead by 237 runs thanks to Alex Hales (41no) and night watchman Finn (6no).