Sri Lanka's spinners have choked Pakistan before opening batter Pathum Nissanka hit an unbeaten half-century to guide them to a five-wicket win in the Asia Cup.
Both teams had already qualified for the final on Sunday and were completing the Super 4 stage with Friday's clash - but Sri Lanka have finished unbeaten and will go into the final as slight favourites.
Sri Lanka followed their template of chasing in the tournament for the fourth successive time.
Pakistan were shot out for 121 in 19.1 overs and while the Sri Lanka top order crumbled against Pakistan's pace to 3-29 inside the batting powerplay, Nissanka's gritty unbeaten 55 off 48 balls carried them to 5-124-5 with three overs to spare.
Babar Azam, who struggled with only 33 runs in the previous four games, top-scored with a scratchy 30 off 29 balls before Pakistan lost their last nine wickets for 58 runs.
Wanindu Hasaranga ignited the collapse by clean bowling Babar and Asif Ali off successive deliveries to finish with 3-21.
Offspinner Maheesh Theekshana (2-21) and Dhananjanya de Silva (1-18) also tied down the batters through their disciplined bowling.