Shahid Afridi smashed the second-fastest fifty in ODI's and helped Pakistan make the Asia Cup final by beating hosts Bangladesh by three wickets - with one ball remaining - in Mirpur on Tuesday.

Bangladesh, who chose to bat first after they won the toss, made the most of home conditions and scored an impressive 326 runs in their fifty overs.

It was Bangladesh' highest score in ODI and for the first time in the series all of their top-six batsmen scored freely. In reply, Pakistan were off to a solid start as openers Mohammad Hafeez and Ahmed Shehzad laid the platform with a 97-run opening stand. Hafeez' departure, in the 21st over, prompted a collapse and two-more wickets followed.

Fawad Alam kept Pakistan in the hunt but failed initially to boost the run rate as wickets fell regularly at the other end. Centurion Shehzad's departure in the 42nd over proved to be the turning point.

Pakistan needed 102 runs from 52 balls when Afridi walked in. He announced his arrival with a massive six over long-on from the first ball he faced. He repeated the dose two-balls later.

Afridi then smashed Shakib Al Hasan for three sixes in the next over. The right-hander hit two more sixes and two fours, before he departed. Pakistan needed 33 runs from 19 balls at that stage and Alam maintained the momentum to guide his side home.

"I tried my level best to perform well. Misbah has great support and it's my type of situation and I had the licence," Afridi said.

"I was confident that 10, 10.5 an over was possibly so I took a chance. I have to congratulate Bangladesh for the score they put up. We need to do better with the ball. [Who is your batting coach] None, no one. Moin bhai supports me. I knew if I slog I will hit it because it was a very good pitch."