England captain Joe Root remained unbeaten at 168 the visitors led Sri Lanka by 185 runs in the rain-affected second day of the opening Test on Friday.
England were 320-4 when rain halted play in Galle. Root and Dan Lawrence, who scored 73 on his Test debut, built a 173-run partnership after the tourists resumed the day on 127-2.
Root, who is batting with Jos Buttler (7), hit his 18th Test ton and kept up the pressure on the home bowlers despite losing overnight partner Jonny Bairstow for 47 early in the day.
After a full opening day in the empty stadium in Galle, rain started falling just before the start of the second day and wiped out the final session.
Root started the day on 66 and passed 100 soon after lunch with a single off Dilruwan Perera. He raised his bat and hugged Lawrence.
It was the star batsman's highest Test score in more than a year after going through 2020 without a century and dropping out of the world top 10 batsmen.
Lawrence, 23, stood firm with his captain, displaying confidence against the spinners as he brought up his fifty in 95 balls with five fours and one six.
Lawrence, who plays for English county Essex, survived two dropped catches on 60 and 68 and finally fell to Perera.
Earlier Bairstow became left-arm spinner Lasith Embuldeniya's third victim, caught at gully. The wicket ended a 114-run third-wicket stand for the tourists.
Off-spinner Dom Bess returned career-best figures of 5-30 to help skittle Sri Lanka out for 135 — the lowest first-innings score at the venue — in two sessions on Thursday after the hosts elected to bat.
The two-match series has resumed after being aborted last March due to the coronavirus pandemic.