England fast bowler Chris Tremlett recorded his best Test figures of six for 42 to reduce Sri Lanka to 177 for nine in their first innings as rain brought an early close to the second day of the third and final Test on Friday.
After the morning session had been washed out, Sri Lanka, resuming on 81 for four, lost wickets consistently through the afternoon and had problems with Tremlett's pace and steep bounce on a lively pitch. The evening session was also washed out.
Wicketkeeper batsman Prasanna Jayawardene made an impressive 43 and was the only player to look assured throughout his innings while tailender Dilhara Fernando counter-attacked for an unbeaten 33 off 41 balls.
The combination of England's dominance and the many weather interruptions with only 38 overs possible on day one, are damaging Sri Lanka's chances of achieving the win they need to level the series.
Thilan Samaraweera fell to the 12th ball of the day for 31 in what turned out to an eventful over from Tremlett.
First the batsman was struck a painful blow on the right glove which caused a brief delay as he received treatment. He then scored two runs through midwicket to register the 50 stand with Jayawardene, before his dismissal.
Samaraweera was undone by a rare Tremlett delivery that was pitched up just outside of his off stump and he pushed tentatively to offer Kevin Pietersen a comfortable catch in the gully.
Thisara Perera (2) failed to justify his promotion in the batting order with an ugly, short-lived innings.
The left-hander ignored his team's perilous situation and tried to slog Tremlett several times, but managed only a faint edge to wicketkeeper Matt Prior off his sixth ball.
Jayawardene continued to ignore the struggle at the other end and played some elegant strokes, including an on-drive through midwicket for four off James Anderson and a cover driven three in the same over.
Even when England scattered their close-in fielders for him and placed two men back for the hook shot, he took them on with success, cracking Stuart Broad's bouncer over deep backward square-leg for four.
Rangana Herath played another counter-attacking innings and was slightly more successful than Perera with 12 from 15 balls, until he hooked Tremlett to Anderson at fine leg.
Jayawardene was eventually the eighth man out when he swept off-spinner Graeme Swann to deep mid-wicket.
Tremlett, who also had Suranga Lakmal caught behind off his first ball, may yet better his first-class career best of six for 44.
England won the first Test in Cardiff and drew the second at Lord's.