Captain Angelo Mathews (80), Kaushal Silva (60) and then Dinesh Chandimal (54no) all made the home attack work much harder than previously, to trail by 88 on 309-5 at stumps on day three.
Three defiant half-centuries assured the tourists of easily their most substantial total in four attempts so far in the series, more than doubling their previous best in fact.
But they were following on a mammoth 397 runs behind, and the extent of their ambition could still scarcely be more than regaining a little lost confidence and causing England minor inconvenience.
If so, this was finally a case of mission accomplished for Sri Lanka.
They began their second innings having lost 30 wickets for 311 in the series to date, and badly needed to summon a rearguard - as much for the spectacle of Test cricket as their own pride.
Sri Lanka’s batsmen presented a new air of determination from the outset, and relative serenity by mid-evening - compared with those earlier collapses - but it was still almost certain to eventually prove too little too late to stop England taking an unassailable 2-0 lead.
Openers Silva and Dimuth Karunaratne negotiated 16 overs and appeared set to see off the first spell from each of England’s four seamers, until the left-hander pushed out in defence at Chris Woakes and edged to second slip.
Then in the hour after lunch, counter-attacking Kusal Mendis was caught-behind off James Anderson and Lahiru Thirimanne bowled playing inside a Moeen Ali off-break.
Mathews needed the support of the third umpire twice in successive Anderson deliveries before he had scored, an edge to second slip ruled grounded by Joe Root and then England’s recourse to DRS fruitless for a caught-behind appeal.
Thereafter, Sri Lanka’s transient survival on a slow pitch was less fraught - Silva completing his 111-ball 50 with a leg-glance off Steven Finn for his sixth four in a fourth-wicket stand of 82.
His partner Mathews targeted Moeen on his way to 50 from just 63 balls, with one piece of fortune on 36 when Jonny Bairstow failed to gather for a stumping chance.
Finn struck for the first time, in his 18th over of the match, when Silva tried to farm runs leg-side but was undone by a little bounce from slightly the wrong line and steepled a catch off a leading edge to Bairstow.
Anderson earned the wicket of Mathews, distracted perhaps by a preceding delivery with kept devilishly low but missed off-stump and then turned round in defence and edging behind.
Sri Lanka had folded from only three or four down previously, but refused to do so this time - and Alastair Cook resorted to overs from part-timers James Vince and then Root to use up overs before the second new ball in a vain search for a final surge which will instead be delayed until day four following Chandimal’s unbroken partnership of 87 with Milinda Siriwardana.
It had taken England only 3.3 overs under heavy morning cloud cover to take the tourists’ last two first-innings wickets and bowl them out for 101.
Stuart Broad finished with figures of four for 40 on the ground where he bowled England to Ashes series victory on his last Test visit three years ago.
He needed just three legitimate deliveries to see off No 10 Suranga Lakmal caught-behind, and take his sequence of success to three wickets for four runs in nine balls.
Then Thirimanne was last out, attempting to disrupt Anderson (3-36) but simply skying a catch to point.