Jonny Bairstow took centre stage yet again by making his highest Test score before Sri Lanka took advantage of favourable batting conditions to make a confident start to their reply on day two of the third and final Test at Lord's.
Bairstow has gone from strength to strength this year and the in-form England wicketkeeper-batsman frustrated the tourists with a classy unbeaten 167 as England, already assured of a series victory, were all out for 416 on Friday.
Chris Woakes (66) scored an accomplished first Test half-century in a 144-run stand for the seventh wicket with Bairstow, who made the most of being dropped on 11 to pass his previous Test-best of 150.
The Yorkshireman dropped a simple chance to dismiss Dimuth Karunaratne (50) off Woakes' first ball, but caught the opener off a Steven Finn (1-31) delivery down the leg side as Sri Lanka closed on 162-1.
Kaushal Silva was 79 not out at stumps to leave the tourists trailing by 254 on a day in which Rangana Herath (4-81) was the pick of the bowlers on a flat pitch.
Having resumed on 297-6, after being reduced to 84-4 on Thursday, Bairstow and Woakes kept the scoreboard ticking, with the Warwickshire all-rounder scoring more freely in the morning session.
Woakes punished anything short, while Bairstow looked untroubled in another knock of the highest order as the pair ran well between the wickets and cashed in on an excellent track.
All-rounder Woakes slapped Shaminda Eranga to the point boundary to bring up his maiden Test half-century, but fell before lunch when he was caught and bowled by wily spinner Herath.
The brilliant Bairstow brought up his 150, and his biggest Test score, by easing Angelo Mathews to the fine-leg boundary, but missed out on a double-century after Suranga Lakmal (3-90) and the evergreen Herath took two of the last three wickets.
Bairstow struck 18 boundaries in his magnificent 251-ball knock, but had a moment to forget when he spilled a straightforward catch after Karunaratne edged Woakes' first delivery on 28.
England failed to overturn a not out verdict for leg before wicket when Karunaratne was struck on the pads by Woakes and the left-hander played some elegant strokes to make a first half-century of the series.
Karunaratne was taken down the leg side off Finn after an opening stand of 108, but the busy Silva was particularly strong through the off side as he made a second consecutive half-century and Kusal Mendis (25no) was also unbeaten at the close.