Bangladesh will take on India in the Asia Cup final on Friday, September 28, at 1700 IST.
Mushfiqur Rahim stroked a brilliant 99, while Mustafizur Rahman picked up four wickets as Bangladesh outclassed Pakistan by 37 runs to qualify for the final, in the Asia Cup in Dubai, on Wednesday.
The experienced Mushfiqur notched up his 30th half-century, while Mohammad Mithun made 60 to lift Bangladesh to a competitive 239 from a precarious position after opting to bat, in the virtual semi-final, in Abu Dhabi.
Mushfiqur was unlucky as he fell one short of what could have been his seventh ODI century but did enough to rescue Bangladesh with a 144-run fourth wicket stand with Mithun after they were reduced to 12 for three inside five overs.
Later, opener Imam-ul-Haq (83) turned out to be the lone bright spot as Pakistan's batting line-up faltered in pursuit of the modest chase and finished on a disappointing 202 for nine.
Bangladesh will take on India in the title clash in Dubai on Friday.
Just like Bangladesh, Pakistan's chase got off to a disastrous start as they were reduced to 18 for three in the fourth over.
But Imam did not give up the fight and stitched two crucial partnerships with Shoaib Malik (30) and Asif Ali (31) to keep Pakistan in the hunt.
Imam first stitched 67 runs for the fourth wicket with Malik and then shared crucial a 71-run partnership with Ali to keep Pakistan's hopes alive.
However, Bangladesh never gave up hope and kept chipping away at the wickets in the middle overs.
Pakistan did not have the best of starts as they lost Fakhar Zaman, Babar Azam and skipper Sarfraz Ahmed early.
Left-arm pacer Mustafizur Rahman shone with brilliant figures of four for 43, while off-spinner Mehidy Hasan claimed two for 28.
The turning point of the match was Bangladesh skipper Mashrafe Mortaza's blinder of a catch at midwicket to remove the in-form Shoaib Malik for 30 off Rubel Hossain's bowling in the 21st over.
Mortaza dived full length to his left at midwicket to latch on to an unbelievable as Malik went for a chip over the leg side.
That was the trigger that Bangladesh needed as Bangladesh bowled and fielded brilliantly inside the circle to frustrate the Pakistani batsmen.
However, Imam and Ali raised some visions of a victory with their 71-run stand but both the batsmen's dismissal in quick succession derailed Pakistan's chase.
Earlier, Mushfiqur Rahim and Mohammad Mithun hit half-centuries to rally Bangladesh before they were bowled out for 239.
Mushfiqur (99) fell one short of what could have been his seventh ODI century but by then he had rescued Bangladesh with a 144-run fourth wicket stand with Mithun after they were reduced to 12 for three inside five overs.
For Pakistan, comeback man Junaid Khan shone with the ball, registering impressive figures of four for 19 from his nine overs.
Opting to bat first in the virtual semi-final, Bangladesh were off to a horrendous start as they lost their first three wickets with the scoreboard reading just 12 in 4.2 overs.
Left-arm pacer Junaid did the early damage, removing openers Liton Das and Soumya Sarkar in consecutive overs.
One-down Mominul Haque failed once again as he was cleaned up by young left-arm fast bowler Shaheen Afridi (2/47) in the fourth over.
But Bangladesh's go to man in crisis situations, Mushfiqur once again came to his side's rescue and in Mithun's company first stabilised the rocking ship and in the process brought up the century stand in 176 deliveries.
Pakistan got the vital breakthrough in the form of Mithun who was caught by Hasan Ali off his own bowling in the 35th over.
Mithun's second fifty of his career came off 84 balls with the help of just four boundaries.
Imrul Kayes (9) looked shaky from the onset and didn't last long, falling leg before wicket to leg-spinner Shadab Khan.
The diminutive Mushfiqur, however, went about his business with a calm head and looked set for a well-deserved century but luck was not on his side as he was caught behind by Sarfraz Ahmed off Afridi just one short of the three-figure mark.
Towards the end Mahmudullah (25) and skipper Mashrafe Mortaza tried to use their long handle to maximum effect but failed to provide the final flourish, as they lost three wickets for nine and were bowled out in the 49th over.