Slinging bowler Lasith Malinga took a career-best five wickets as Sri Lanka beat England by 19 runs to reach the World Twenty20 semi-finals and send the defending champions crashing out on Monday.
Malinga took 5-31 as England, chasing a daunting 170-run target, were restricted to 150-9 in the Super Eights match at Pallekele stadium before a packed and rowdy crowd of 30,000.
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.
"The guys played really well. Lasith is unbelievable, both with the new ball and with the old ball," said Sri Lanka's captain Kumar Sangakkara.
"It would be fantastic if we can win it (the title) but the focus is to keep our feet on the ground," said Sangakkara.
England batsman Samit Patel fought a lonely battle with a career-high 67 but Malinga and spinner Akila Dananjaya (2-26) ensured Sri Lanka did not lose control after scoring 169-6 when they were sent to bat first.
England's chase did not get the desired start as they were 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 eighth 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.
"We've learnt a huge amount from this, we need to keep wickets in hand at the top. We fell short at the top of the order and in the death bowling too. Samit also today showed what he could do," said Broad.
In Sri Lanka's innings Mahela Jayawardene top-scored with 42 off 38 balls, while Angelo Mathews hit 28 and Thisara Perera made 26 not out with two sixes.
Sri Lanka raced to 35-0 before Swann pegged the hosts back with a double strike, dismissing Jayawardene caught at deep mid-wicket off a lofted shot, and off the next ball had Kumar Sangakkara caught behind for 13.
Mathews and Jeevan Mendis (18) added a quick-fire 52 for the fourth wicket. Broad finished with 3-32 while Swann took 2-26.
Pakistan play Australia and India meet South Africa in Colombo on Tuesday to decide the two semi-finalists from group two. The final is in Colombo on Sunday.