Alastair Cook made yet another half century as England finished day four at Lord’s on 149-2, 156 runs ahead of Sri Lanka.
Cook was unbeaten on 61 after earlier putting on 117 with fellow in-form batsman Jonathan Trott, who made 58.
The match is intruigingly poised ahead of the final day, with memories of Sri Lanka’s dramatic final day collapse in Cardiff still fresh in everyone’s memory.
Pressure will be growing on captain Andrew Strauss though after the opener fell LBW to left-armer Chanaka Welegedara for a duck from the second ball of England’s second innings.
Sri Lanka had earlier added 107 to their overnight score after they resumed on 372-3. Rain delayed the start until after lunch - but they ended up just seven runs behind England's 486.
The rain which ended proceedings early on day three fell for much of the night and continued to delay play at the start of the day.
It cleared in time for a start at 1:10pm though and despite a fairly inconsistent showing - reminiscent of the previous two days - England found the conditions more to their favour with some exaggerated bounce and sideways movement.
Steven Finn is perhaps most guilty of the waywardness which has plagued England but the 22-year-old’s ability to bowl wicket-taking deliveries means he is permanent threat.
He removed Mahela Jayawardene (who was chasing a third Lord’s century) to get England underway with a good delivery which was edged to Alastair Cook at third slip.
Chris Tremlett was the pick of the England seamers and with the first ball of his next over removed Thilan Samaraweera when the Sri Lanka number five feathered a wild drive through to Matt Prior.
Finn had his fourth shortly afterwards - becoming the youngest England bowler to 50 Test wickets - when Maharoof was trapped LBW and England sensed a chance to grab a useful first innings lead.
Prasanna Jayawardene is in pristine form though and together with the unconventional left-hander Rangana Herath they frustrated England with some bold strokeplay in a partnership of 57.
Swann finally removed Herath for 26 - stumped by Prior - and helped himself to a couple of cheap tail-end wickets but hopes of a significant lead had evaporated.
England’s reply got off to the worst possible start when Strauss fell LBW to Welegedara for the second time in the match.
The second ball of the innings moved viciously down the slope and the England skipper was struck on the back pad straight in front of middle and off stumps.
Strangely he decided to review the decision but was quickly on his way back to the dressing room after seeing the decision on the big screen.
Cook and Trott looked as comfortable as they have all summer in a fluent partnership that was only briefly interrupted by bad light.
Trott was already looking a good bet for his seventh Test ton when he played around a full delivery from Herath and was bowled for 58.
Cook continued on his merry way though, cutting, driving and pulling with authority while at the other end Kevin Pietersen survived a tricky period up to the close and will resume on 15.