Hosts Sri Lanka reached the final of the World Twenty20 after defending a total of 139-4 for a 16-run win against Pakistan in Colombo.
Opener Mohammad Hafeez hit 42 off 40 balls but was one of three victims for left-arm spinner Rangana Herath (3-25) as Pakistan's run chase finished short on 123-7.
Herath's spin partner Ajantha Mendis (2-27) and seamer Angelo Mathews (2-27) chipped in with a couple of wickets each.
Pakistan number six Umar Akmal (29no) did his best in the closing overs as the required-rate spiralled but received little support from the lower order.
With 27 needed off the last 12 balls, Lasith Malinga (0-19) conceded only four runs from the penultimate over and Nuwan Kulasekara (0-15) finished off the job for Sri Lanka without alarm.
Openers Mahela Jayawardene (42) and Tillakaratne Dilshan (35) had earlier put on 63 in 10.2 overs after Sri Lanka opted to bat first.
Wickets then fell regularly to further stall the innings before the final over, bowled by Umar Gul, disappeared for 16 runs as fifth-wicket duo Thisara Perera (11no) and Angelo Mathews (10no) got their side up to 139-4.
The second semi-final between Australia and West Indies takes place at the same venue on Friday.