Lasith Malinga took five wickets as Sri Lanka knocked Twenty20 World Cup holders England out of the tournament with a 19-run Super Eights victory on Monday.
England, chasing 170, lost three wickets in Malinga's first over and the fast bowler completed career-best figures of five for 31 to take Sri Lanka into the semi-finals along with West Indies.
"We gradually progressed, the processes have been really good and the boys have worked really hard to get there," said Sri Lanka captain Mahela Jayawardene.
"We've come under tough situations and everyone has put their hands up and performed.
"It was really good that the middle order got a hit today they showed we've got the quality and the bowlers to back it up."
Sri Lanka produced a solid all-round batting performance after losing the toss with Jayawardene leading the way, making 42 in a total of 169 for six.
Angelo Mathews (28) and Jeevan Mendis (18) added 52 off 31 balls. Stuart Broad was England's best bowler with three for 32.
Malinga removed Luke Wright, Jonny Bairstow and Alex Hales in his first over and England slumped to 93 for seven.
Samit Patel smashed 67 off 48 balls, including eight fours and two sixes, and shared an enterprising eighth-wicket partnership of 51 with Graeme Swann who made 34.
But Malinga returned to bowl out Patel and end English hopes of reaching the last four.
England captain Broad said it was Malinga's three-wicket burst that did the damage to his side's innings.
"It was a shame because we would have got a start there and the way Samit Patel took on the spinners it looked very encouraging. It was a class act," said Broad.
"If we had hung around and stayed with him we know the last four-five overs can go for anything.
"It was really disappointing, we were not quite good enough."
Sri Lanka topped Group One after the Super Eight phase with the West Indies also reaching the semi-finals where they will be joined by two from Australia, India, Pakistan and South Africa.