The victory meant Sri Lanka and the West Indies reach the semi-finals after the hosts won all their three matches in the Super Eights. West Indies earlier enjoyed a dramatic Super Over win against New Zealand.

England’s chase was rocked by Malinga in the third over when they lost Luke Wright (12), caught off the third ball, Jonny Bairstow (two) off the fifth and Alex Hales off the sixth for three.

It needed a fourth-wicket stand of 55 between Patel and Eoin Morgan (10) to repair the early damage but England then lost Morgan and Ravi Bopara in the space of three runs.

Malinga then returned for his second over to dismiss Jos Buttler, caught in the deep for one, while captain Stuart Broad gave a simple catch off Dananjaya for one to leave England in disarray.

Patel and Graeme Swann (34) then added a brisk 51 for the eight wicket to raise hopes of an unlikely win. But Malinga bowled Patel in the penultimate over to improve on his previous best figures of 3-12 against New Zealand in 2010.