Dhaka - Shahid Afridi smashed the second fastest one-day half-century and Ahmed Shehzad hit a hundred to give Pakistan a three wicket win over Bangladesh on Tuesday and a place in the Asia Cup final.
The 34-year-old, who hit two consecutive sixes to give Pakistan a one-wicket win over India on Sunday, was once again Pakistan's saviour as they chased down their highest-ever target of 327 in 49.5 overs in Dhaka.
Afridi overshadowed a brilliant 123-ball 103 by opener Ahmed Shehzad and a sedate 74 by Fawad Alam who both set the tone for the chase, but it was the aggression of Afridi which helped Pakistan overcame a tough resistance from the hosts.
Pakistan will meet Sri Lanka in Saturday's final.
Afridi, who went into bat with Pakistan needing 101 off 52 balls, smashed paceman Shafiul Islam for a four to reach fifty off just 18 balls, one short of one-day cricket's fastest-ever half-century record held by Sri Lanka's Sanath Jayasuriya, made against Pakistan in Singapore in 1996.
He equalled his own record of second fastest one-day fifty, set twice by him. He scored an 18-ball fifty during his 37-ball hundred against Sri Lanka in Nairobi in 1996 and another 18-ball fifty against the Netherlands at Colombo in 2002.
In all, Afridi took seven sixes and two boundaries off just 25 balls.
Pakistan's previous best run chase in a one-day was 322-6 against India at Mohali in 2007.
Before Afridi's blitz, it was a remarkable turnaround for the hosts who suffered a shock upset defeat against new-comers Afghanistan in their second match on Saturday.
Bangladesh made several changes after their 32-run loss, the most prominent being all-rounder Shakib Al Hasan's return after he was suspended for three matches over indiscipline.
That paid off as a revamped batting line-up led by Anamul bettered Bangladesh's previous highest-ever total of 320-8, made against Zimbabwe in Bulawayo in 2009.
Pakistan too got a solid 97-runs by the 21st over with Mohammad Hafeez (52) and Shehzad in a punishing mood.
But they were derailed by left-arm spinner Mominul Haque (2-37) who dismissed Hafeez and Sohaib Maqsood (two), while Shakib had captain Misbah-ul Haq for four.
Shehzad completed his fifth one-day hundred but was bowled by Abdur Razzak, after hitting 12 fours and six. Shehzad added 105
runs for the fourth wicket with Alam.
But Alam and Afridi broke the hearts of a capacity home crowd after Bangladesh had been given a chance by their batsmen.
Anamul and Imrul Kayes (59) put on 150 for the opening stand and cashed onto some sloppy fielding and bowling by Pakistan.
Afridi went for 64 runs in his ten overs while paceman Mohammad Talha conceded 68 in seven and Umar Gul 76 in his 10.
But it was the left-arm spinner Abdur Rehman, brought in as one of two changes in Pakistan's squad, who suffered the worst fate as he was suspended from the attack over dangerous bowling.
He became the first bowler in international cricket to concede eight runs without bowling a legal delivery.
Kayes hit five boundaries and two sixes off 75 balls.
Anamul hit six boundaries and four well-timed sixes before he was caught off Saeed Ajmal who took 2-61.
Mominul (51), Rahim (51 not out) and Shakib with a 16-ball 44 comprising six fours and two sixes, made the final touches as Bangladesh scored 121 in the last 10 overs.