Moeen Ali's maiden one-day century wasn't enough to inspire England to victory in the first one-day international against Sri Lanka as the tourists fell short in Colombo.
Tillakaratne Dilshan's 88 and an unbeaten 30 from 22 balls for Jeevan Mendis helped the hosts set 318 to win in the first of seven ODI matches this winter.
After captain Alastair Cook was dismissed cheaply for 10, having survived successive reviews after being given out lbw twice, Ali put on 56 with Ian Bell (35) as England made an impressive start to their chase.
Bell, Joe Root (2) and Eoin Morgan (1) fell for just 16 runs in 23 balls as Sri Lanka mounted a comeback and though Ali (119) reached his first limited-overs hundred amid a boundary-laden innings, a constant flow of wickets kept England in check.
Ben Stokes and Chris Woakes were then both brilliantly stumped by Kumar Sangakkara off the bowling of Rangana Herath to leave the away side needing 59 from 45 balls with just two wickets remaining.
James Tredwell played all around a straight one from Ajantha Mendis before Ravi Bopara's cameo of 65 from 61 balls was ended by a brilliant catch from Kusal Perera to see Sri Lanka home by 25 runs.