Rocked by the loss of three quick wickets against a side that has not beaten them in eight previous encounters, England staged a comeback through their fourth and sixth-wicket pairs in the Group A match at the Brabourne Stadium.
Struggling at 29 for three, Arran Brindle (31) and Heather Knight (38) steadied the England innings with a partnership of 64 for the fourth wicket in 100 balls.
After the loss of this duo in a span of overs, it was left to Jenny Gunn (52 off 71 balls) and Amy Jones (41) to carry on the good effort with a stand of 83 in 101 balls for the sixth wicket.
Later, the tail wagged as England added 59 runs in the last 30 deliveries, with Katherine Brunt making a quick 12 off five balls and Danielle Hazell chipping in with an unbeaten 19 of eight.
For Lanka, Kaushalya Lokusooriya, Chamani Senevirathne and captain Shashikala Siriwardene picked up two wickets apiece.
England lost their top three batters within half an hour after being put in to bat.
Captain Charlotte Edwards, playing in her fifth successive tournament, was bowled off the boots while attempting to hit a ball going down the leg off Kaushalya.
England dug themselves into a deeper hole when the other opener Danielle Wyatt, who too played a couple of spanking cover drives, and number 3 Lydia Greenway, were trapped leg before in successive overs by medium pacer Chamani.
The recovery act was staged by the right handed duo of Brindle and Knight before a run-out, following a misfiled, ended the blossoming stand. Chamani had a very fruitful five-over first spell of two for 18. Brindle hit three fours in her 74-ball knock and her dismissal came at the half way stage of the innings that put England back after the rally.
Knight also did not last too long after Brindle's fall, dragging a ball on to her stumps while trying to sweep a wide ball from leg spinner Sandanali Dolawatte as England slipped to 114 for five.
However, the recovery for the holders was continued in good measure by the pair of Gunn and Jones who helped the team close in on the 200 mark by batting through the second power-play period.
Lanka snapped the partnership with the final ball of the 47th over, which brought Brunt to the crease, and the tall batter hit Kaushalya for a six and a four in the penultimate over.
England 238 for 8 (A Brindle 31, H Knight 38, J Gunn 52, A Jones 41; K Lokusooriya 2 for 49, C Senevirathne 2 for 35, S Siriwardena 2 for 62) v Sri Lanka.