Sri Lanka captain Kumar Sangakkara hit an unbeaten 134 as they beat England to keep their ICC Champions Trophy hopes alive