Fast bowler Lasith Malinga grabbed a career-best 5-31 as Sri Lanka knocked out defending champion England from World Twenty20 with a 19-run win in the Super Eights.
Malinga dismissed Luke Wright (12), Jonny Bairstow (2) and Alex Hales (3) in the space of his first five balls and then removed Jos Buttler (8) and top scorer Samit Patel for 67 to restrict England to 150-9 in its last group match.
Sri Lanka had posted a decent 169-6 with Mahela Jayawardene, who surprisingly handed over the captaincy to Kumar Sangakkara for the match, top scoring with 42 off 38 balls and England captain Stuart Broad picking up 3-32.
Sri Lanka topped the group with six points from three wins. West Indies - which also defeated England - also qualified for semifinals after its thrilling victory in a one-over eliminator against New Zealand.
''Lasith (Malinga) is unbelievable, both with the new ball and with the old ball,'' stand-in Sri Lanka captain Kumar Sangakkara said.
''It would be fantastic if we can win it (the tournament) but the focus is to keep our feet on the ground.''
Patel tried to revive the chase with Eoin Morgan (10) after Malinga's three-wicket burst with a 55-run stand before the latter attempted a reverse sweep off Akila Dananjaya and was trapped leg before wicket at the total of 73.
Buttler was well caught at deep fine leg by Ajantha Mendis as England rallied at 93-7 when Stuart Broad became Dananjaya's (2-26) second victim.
Graeme Swann hit 34 off 20 balls and gave a glimmer of hope to Broad's team by hitting Malinga for three fours in his return over and added 51 off 28 balls before both fell in space of three runs.
Patel's stumps were knocked by Malinga and Swann was bowled by Kulasekara in the last over. Patel, who got little support from the other end, hit eight fours and two sixes in his 48-ball run knock.
''We've learned a huge amount from this,'' Broad said.
''We need to keep wickets in hand . . . (but) we fell short at the top of the order.'' Earlier, Jayawardene (42) and Tillakaratne Dilshan (16) provided a decent start of 35 after Broad won the toss and opted to field first.
Swann dropped a two-handed sitter in the lone slip when Dilshan was on 7 before the hard-hitting opener was trapped lbw by Steven Finn in the fifth over. Jayawardene and Kumar Sangakkara (13) added 39 runs for the second wicket before Swann (2-26) struck off successive deliveries by removing both batsmen.
Jayawardene was well caught by Morgan at deep midwicket and Sangakkara was caught behind. Jayawardene hit five fours and a six in his 38-ball knock.
Angelo Mathews (28) added a brisk 52 off 31 balls with Jeevan Mendis (18) before Broad had both of them dismissed off successive balls in the 16th over at the total of 126.
But Sri Lanka's lower middle order, led by Thisara Perera's 26 off 16 balls with two sixes, helped Sri Lanka post its best ever Twenty20 total against England.
The other two semifinalists will be decided on Tuesday after Group 2 matches between Pakistan vs. Australia and India vs South Africa.
Sri Lanka will meet the runner-up of Group 2 in the first semifinal on October 4 while West Indies will take on the winner of Group 2 on October 5.
Family counts blessings after superbug scare (graphic content)
Can the Black Caps win the test series in England?