Kumar Sangakkara hit 134 not out as Sri Lanka chased down a target of 294 to beat England by seven wickets in the Champions Trophy.