Alastair Cook was closing in on a century at tea on the second day of England's warm-up match against a Sri Lankan Board XI, but the rest of the top order failed to fully conquer their spin problems.
Cook was 90 not out at the break, with England 197 for four in reply to the hosts' 169 all out.
While Andrew Strauss, with 40, and Kevin Pietersen, who scored a breezy 39, both had some success, all four wickets to fall went to spin.
It was slow bowling that undermined Strauss' side in their Test series whitewash against Pakistan and Ian Bell, with a two-ball duck, will be particularly disappointed.
England resumed on six for nought and Strauss was looking to take on his favoured cut shot from the start, missing a couple of times but also bringing some early runs.
Cook was playing a more conservative game, but found the ropes for the first time with a punchy drive off Nilanka Premaratne. Both batsmen worked the ball well into the off-side to bring England's 50 up in 99 balls.
Skipper Strauss had looked comfortable all morning but was given lbw to Dilruwan Perera attempting to work him off the back foot before lunch and Cook reached 50 at the start of the afternoon session, bringing up the mark in 112 balls.
His new partner, Jonathan Trott, lasted 35 deliveries and made 16 runs before he was given out lbw to Malinga Bandara.
Pietersen added momentum to the innings, sweeping another boundary off Perera as Cook accumulated steadily at the other end.
The third-wicket pair eased England past their opponents' total but Serasinghe responded with two wickets in three balls, halting Pietersen's entertaining knock at 39, then he clean-bowled Bell for a two-ball duck.