Jamie Smith’s pulsating 67 breathed life into England but could not stop Sri Lanka moving into pole position to win the final Test at The Oval.
Needing 219, the tourists ended the third day on 94-1 from only 15 overs, 125 runs short of a famous win.
Sri Lanka would be much closer, or may already have the game won, had it not been for the brilliance of Smith, who electrified his home ground with some breathtaking batting.
England have been awful for large parts of the past two days and were in tatters at 82-7, 144 ahead, when Smith launched his astonishing assault.
On 15 from 31 deliveries, Smith clobbered 52 off the next 18 he faced, cleanly striking the ball to all parts.
In a stand of 58 for the eighth wicket, Olly Stone contributed five. With Smith in full flow, thoughts were turning to England’s fastest Test century of all time when he found mid-wicket and departed to a rapturous ovation.
England added just another 16 to be 156 all out, Lahiru Kumara leading a magnificent Sri Lanka bowling effort with 4-21.
That left Sri Lanka batting twice in the day after earlier being dismissed in their first innings for 263, with England left-armer Josh Hull picking up 3-53 on his Test debut.
Pathum Nissanka tucked into some wayward England bowling late on. Though Chris Woakes had Dimuth Karunaratne caught and bowled, Nissanka has 53 from 44 balls, alongside Kusal Mendis on 30.