The improved hosts posted 273 for 7 in their 50 overs, with Niroshan Dickwella and Dasun Shanaka both hitting fifties.
But England was ahead of the rate on 132 for 2 from 27 overs when play was suspended in Pallekele.
Dasun Shanaka, whose run-a-ball 66 did the most to propel Sri Lanka toward respectability, pinpointed two of the instances in which his team had let the match slip.
The first of these was his own run-out, when he seemed as if he was just beginning a death-overs explosion but was run out trying to take a non existent single.
Sri Lanka 's other costly mistake came when they were bowling, where Joe Root mis-hit a sweep off the bowling of Dhananjaya de Silva, and although the resulting top-edge was caught at short fine leg, Sri Lanka had too many men outside the circle.