Sri Lanka posted a formidable 321 for six after completing their 50 overs, with captain Kusal Mendis producing a magnificent century to lead the visitors’ batting effort.
Mendis struck 121 from 100 deliveries, including 14 fours and three sixes, after coming to the crease with Sri Lanka at 45 for one. His counter-attacking innings provided the foundation for Sri Lanka to build a challenging total.
The captain received a crucial reprieve when he was dropped on 17, but he capitalised on the opportunity and went on to reach his seventh ODI century from just 82 balls. His dismissal eventually came in the 36th over when he attempted to attack Rehan Ahmed and was caught at deep mid-wicket.
Mendis also combined with Kamindu Mendis for a valuable 137-run partnership for the second wicket, helping Sri Lanka recover strongly and maintain the momentum through the middle overs.
Pavan Rathnayake then provided an important late-innings boost, scoring 48 from 39 balls, while Janith Liyanage added 32 as Sri Lanka pushed beyond the 320-run mark.
For England, Gus Atkinson and Rehan Ahmed claimed two wickets each, but Sri Lanka's strong finish left the hosts with a demanding chase.
England now require 322 runs from 50 overs, meaning a required run rate of 6.44 runs per over to win the match.
The result will also be significant for the three-match ODI series, with Sri Lanka looking to respond after the opening match and England seeking to strengthen their position in the series.