England captured the final seven Sri Lanka first-innings wickets for 107 runs in the second Test at Lord's on Monday to give themselves an opportunity to take a 2-0 lead in the three-match series.
Sri Lanka, comfortably positioned at 372 for three at the start of the fourth day, succumbed for 479 in reply to England's 486 after the opening session had been washed out.
England lost captain Andrew Strauss for a second-ball duck but Alastair Cook (61 not out) and Jonathan Trott (58) added 117 for the second wicket from 116 balls to restore their team's fortunes.
At the close of a prolonged day, England were 149 for two in their second innings, an overall lead of 156, with 98 overs scheduled for Tuesday's final day.
The England fast bowlers had been criticised by bowling coach David Saker for their lack of accuracy and they still strayed down the leg-side with 25 byes and 23 leg-byes included among the extras.
They were able, though, to extract life and lift from the rain-freshened pitch with Finn proving the most successful with four for 108.
Swann had never been allowed to settle on Sunday as Tillakaratne Dilshan used his feet repeatedly to negate the off-spinner's threat during an heroic captain's innings of 193.
SWANN STRIKES
Swann bounced back against the Sri Lankan tailenders, however, capturing three wickets from 16 balls to wrap up the innings with figures of three for 101.
Mahela Jayawardene, who had scored centuries in both his previous tests at Lord's, was the first batsman to fall, caught in the slips off Finn one short of his fifty.
His namesake Prasanna Jayawardene contributed a sprightly 40 including five boundaries and a swept six off Swann, adding 57 for the seventh wicket with Rangana Herath.
The other wickets fell quickly, giving England a narrow lead, which Strauss was unable to extend.
Strauss, lbw to Welegedara in the first innings for four, was even less successful this time. He was rapped on the back pad in front of the stumps and an unsuccessful referral only confirmed that he was palpably out.
Trott played with great assurance, clipping the ball firmly through mid-on and bringing up his half-century from 66 balls with his eighth boundary, a handsome backfoot drive through the covers.
He fell victim to a Herath speciality when the left-arm spinner jagged a ball late with the arm to knock back his leg stump.
Trott's dismissal brought Kevin Pietersen to the crease accompanied by his well-documented recent problems against orthodox left-arm spin.
Pietersen, who fell to Herath for three in the first test in Cardiff, was cheered loudly by the sprinkling of spectators as he safely negotiated the first two balls. He raised an even bigger cheer when he on-drove his 13th ball from the spinner firmly to the boundary. Cook was beaten several times outside the off-stump but was otherwise unperturbed, bringing up his half-century with his sixth boundary.
Towering trio threaten Sri Lanka at Lord's
Batting was horrendous in Cardiff Test: Sangakkara
Photos: England rally after top order collapse
England end day well after poor start
Injured Anderson in doubt for Lord's Test