England bowled Sri Lanka out for 453 to establish a first-innings lead of 122 at Lord's, despite a century from visiting captain Angelo Mathews.
A 172-ball hundred from Mathews (102), to add to Kumar Sangakkara's memorable 147, helped to keep England out in the field for another 75 minutes on a cloudy fourth morning of the first Investec Test.
Mathews was left to bat with the tail, and received enough support against England's pace attack to move from his overnight 79 to three figures.
Rangana Herath faced 14 balls from Stuart Broad, almost all short, before he found himself having to deal with James Anderson (three for 93) for the first time.
Anderson needed only one shot at the little left-hander too, full and fast enough to knock out middle-stump.
Mathews had got away with two early edged fours off Anderson, both attempted big shots which flew in the considerable gap between wicketkeeper and a solitary slip catcher - Chris Jordan at around third or fourth.
It was off Anderson too that Mathews went to his century, in his first Test innings in this country, smashing a full-toss over extra cover for his 12th four from the final ball of the over - after England had brought up the field to keep number 10 Shaminda Eranga on strike at the other end.
Mathews lasted only one more delivery, Liam Plunkett immediately seeing him off when he missed a full-length ball and was lbw - before number 11 Nuwan Pradeep was felled by a bouncer from Jordan (three for 102) and smacked the stumps with his bat as he fell to be last out hit-wicket.