Alastair Cook scored his seventh test century Saturday before rain intervened to raise England's hopes of salvaging a draw from the third and final cricket test against Sri Lanka.
England was 237-5 in its second innings when rain stopped play during the post-lunch session, with Cook unbeaten on 107 with Matthew Prior on 18.
Cook faced 259 balls and hit 11 boundaries.
England still trails Sri Lanka by 171 runs and must rely on its tail holding out or rain to fall in the test's final session.
Earlier Muttiah Muralitharan triggered a collapse as the tourists lost three wickets in four balls.
England had moved to 200-2 during the opening session, in a form turnaround after being skittled for 81 in the first innings..
But then Muralitharan interceded, and England were reduced to 202-5 at lunch.
The collapse began in England's 65th over when Kevin Pietersen (30) drove casually against Muralitharan and was caught by Sri Lanka's captain Mahela Jayawardene at short mid-wicket.
Two balls later Paul Collingwood (0) was stumped by wicketkeeper Prasanna Jayawardene off Muralitharan.
Next ball, new batsman Ravi Bopara played a shot toward slip and took off for a run but Mahela Jayawardene made a diving stop and fired the ball to wicketkeeper Prasanna Jayawardene who took off the bails in a flash. Television umpire Asoka de Silva ruled a diving Bopara was short of his ground, giving him a pair of ducks for the test.
Earlier, overnight batsman Ian Bell (34) was the first victim of the day, as he played Muralitharan on the back foot and was beaten and bowled by a ball that kept low.
A draw will not be enough for England to rescue the three-test series, with Sri Lanka having won the opener in Kandy and drawing the second in Colombo.