Joe Root completed a masterful double century to keep England in control of the first Test against Sri Lanka, but the hosts responded with some belated batting resolve of their own.
Captain Root had ended day one on 66, day two on 168 and marched onwards to 228 on the third morning before he was last man down in the tourists' 421 all out - selflessly sacrificing a big not out.
Sri Lanka's first innings had been a comedy of errors, bowled out for 135 with a string of sorry dismissals, and any repeat would have brought an early end to proceedings.
Instead, the hosts were up for the fight, with Lahiru Thirimanne's 76 not out leading them to a vastly-improved 2-156 at stumps
Earlier, Root had secured his fourth double hundred at this level with utter clarity and mild inevitability over the course of his near eight-hour occupation.
En route to his 228, he picked up his 8,000th Test run, the seventh Englishman to do so and the second quickest, having chalked up the feat in his 178th innings - two more than Kevin Pietersen.
By the time he vacated the crease just before lunch, optimistically trying to clear a raft of boundary riders after an innings built around precise sweeps, his side's advantage had swelled to a lofty 286.
Sri Lanka's resistance was then helped by both England spinners, Dom Bess and Jack Leach, under-performing, offering insufficient threat as they managed one wicket between them in 33 overs while failing to stall the run-rate.
Leach eventually struck in his 20th over, snaring Kusal Mendis' outside edge, but more of the same is required on Sunday.
With Moeen Ali out of quarantine 13 days after testing positive for COVID-19, there is a sliver of new pressure on the spinners over the next two days, though it would be a big ask for the all-rounder to be match ready by Friday.
England's other wicket saw Sam Curran remove Kusal Perera with an unintentional half-tracker, though the left-armer's luck deserted him when Dom Sibley dropped Thirimanne on 51.
Australian Associated Press