An inspired spell of bowling from Lasith Malinga helped Sri Lanka to a shock 20-run victory over ICC World Cup favourites England at Headingley.