England were 118 runs away from victory, and a clean sweep of the series, with nine wickets in hand at tea on the fourth day of the second and last Test against Sri Lanka on Monday.
Jonny Bairstow and Dom Sibley took England to 46-1 as they sought to chase down a target of 164 and seal a 2-0 triumph in the series after ripping through the Sri Lanka batting to bowl the hosts out for 126 in their second innings.
Bairstow was 17 not out and Sibley unbeaten on 14 with Zak Crawley the only England wicket to fall, snagged in the gully off spinner Lasith Embuldeniya for 13 as he continued to struggle for form.
The visitors, who added only five runs to their overnight tally before being dismissed for 344, took just over a session to turn the match on its head as Dom Bess and spin partner Jack Leach claimed four wickets each in Sri Lanka’s second innings.
Bess took 4-49 and Leach 4-59 as the home batting line-up was undone by the turn of the wicket and rash shots. It included a wild sweep from veteran Angelo Mathews as he was bowled by Bess for five, and a slog that was top-edged by captain Dinesh Chandimal (9) and expertly caught by James Anderson off Leach.
Embuldeniya, with a quickfire 40 off 42 balls, was the only home batsmen to make more than 20 and his 48-run ninth wicket partnership with Suranga Lakmal helped set England a tougher target.
But he was eventually dismissed off the part-time bowling of Joe Root, who claimed another wicket with his next ball by bowling Asitha Ferando to wrap up the innings. Root finished with figures of 2-0 off 11 balls.
England won last week's first test by seven wickets in a victorious start to a year in which they will play 17 test matches.