Ben Stokes produced two pieces of magic in the field to kick-start England’s push for a first-innings lead in Kandy as Sri Lanka battled hard to stay in the second Test.

Having posted 285 on the opening day, England had their hosts 244 for seven by tea on day two, a narrow advantage which probably hinged on Stokes’ outstanding double – a brilliant run out and an outstanding catch.

After Moeen Ali accounted for nightwatchman Malinda Pushpakumara early on, third-wicket pair Dimuth Karunaratne (63) and Dhananjaya de Silva (59) proceeded to put on the biggest stand of the match – 96 in 146 deliveries – and appeared to be on course for a lengthy stay.

Then Stokes showed his uncanny ability to influence a game. He pounced from gully as soon as De Silva set off for a quick single, gathering the ball and releasing a precise throw that clipped the only stump he had sight of to leave Karunaratne a couple of inches short.

His next intervention, just seven balls later off the bowling of Jack Leach, was equally jaw-dropping. This time he showcased lightning-fast reactions and rock-solid handling skills to snatch the sharpest of one-handed slip catches off Kusal Mendis’ edge.

The scoreboard at lunch read 139 for four, the door having been forced ajar by England’s 27-year-old all-rounder.

The afternoon session was a roughly even affair, containing three more wickets and 105 runs. Adil Rashid had been off colour in the morning but repaid the decision to throw him the ball after the break, taking a pair of important scalps with ripping leg-breaks. Both De Silva (59) and Angelo Mathews were undone, with wicketkeeper Ben Foakes on hand to pouch the nicks.

Roshen Silva (46no) shared a frustrating stand with Niroshan Dickwella until the latter perished sweeping Joe Root, whose decision to award himself seven overs was justified by the lbw verdict.