Sri Lanka sealed a thrilling last-ball win over Pakistan in Colombo on Thursday to set up a title match with India in the Asia Cup.
Chasing 252 off 42 overs in a rain-curtailed match, Sri Lanka were coasting to their target at 210-3 in 35 overs. But a fightback from Pakistan, triggered by part-time spinner Iftikhar Ahmed (3-50 after scoring 47) set up a tense finish.
Shaheen Afridi bowled a sensational penultimate over with 12 needed from 12, first getting Dhanajaya de Silva and last match's hero Dunith Wellalage first ball.
Fast bowler Zaman Khan, who came in as a late replacement, had eight to defend from the last over. He gave away just two runs from the first four balls. But Charith Asalanka (49 not out) got a boundary off an edge to bring the equation down to two needed off one, which was completed with a simple nudge to square leg for a two-wicket victory and a spot in Sunday's final.
The virtual semi-final at the R Premadasa Stadium lived up to the hype as Sri Lanka and Pakistan fought tooth and nail.
Sri Lanka were positive from the start of the chase, aided by the mid match heavy shower that freshened up the pitch and made the spinners less effective, compared to the start of the match.
Pakistan, without pace spearhead Naseem Shah and Haris Rauf, lacked sting with the new ball. Afridi looked down on pace, which allowed Sri Lankan's top order to score with relative ease.
Even the first wicket fell to a run out, Kusal Perera searching for a quick single. Leg-spinner Shadab Khan removed Pathum Nissanka but middle order batsmen Kusal Mendis (91) and Sadeera Samarawickrama (48) went on the offensive.
The partnership had reached exactly 100 when part-time spinner Ahmed had Samarawickrama stumped. From there, Sri Lanka lost their way but held on right at the end.
Earlier, Mohammad Rizwan hit an unbeaten 86 to steer Pakistan to 252-7.
Sri Lanka's bowlers took regular early wickets to check Pakistan's scoring, but Rizwan hit back with his 12th ODI half-century and a 108-run stand with Ahmed, who made 47, to give his team a challenging total.
Fast bowler Pramod Madushan struck first as he bowled Fakhar Zaman for four with a pin-point yorker.
Abdullah Shafique (52) and skipper Babar Azam (29) then rebuilt the innings in their stand of 63 despite surviving a few close calls including an lbw review off Wellalage.
Azam looked to be getting into his groove with a few boundaries but was stumped off Wellalage, a left-arm spinner who was Sri Lanka's star in their previous loss to India with 5-40.
Shafique stood strong and hit two sixes en route to his maiden ODI fifty but soon fell to fast bowler Matheesha Pathirana, who quickly struck again.
Pakistan returned from a rain break on 130-5 with Rizwan digging deep and he got support from Ahmed, who took his time to get his rhythm and hit two sixes in his 40-ball knock.
The team in green had an inauspicious start to the day as they were forced to make two more changes to the side after making five on Wednesday.