Experienced batsman Mushfiqur Rahim missed a century by one run while Mohammad Mithun notched a half-century to steer Bangladesh to 239 in their must-win game against Pakistan in the Asia Cup in Abu Dhabi on Wednesday.

Former captain Rahim scored a 116-ball 99 and added an invaluable 144 for the fourth wicket with Mithun (60) to help Bangladesh recover from a shaky 12-3 after they won the toss and opted to bat at Sheikh Zayed Stadium.

Left-arm paceman Junaid Khan, who replaced Mohammad Amir in the squad, had jolted Bangladesh at the start, dismissing Liton Das (six), Soumya Sarkar (0) and Mominul Haque (five) to reduce them to 12-3.

Junaid finished with 4-19 in his nine incisive overs. Rahim hit nine boundaries before he was caught behind with just one needed for a second hundred in the tournament, following his 144 against Sri Lanka in the first round.

It was sheer bad luck that he fell in the 42nd over, caught behind off paceman Shaheen Shah who finished with 2-47. Rahim became the first Bangladeshi batsman to be dismissed for 99 in one-day cricket.

Mithun, who added 134 with Rahim against Sri Lanka, hit four boundaries in his 84-ball innings. The winner of this match will meet defending champions India in Friday's final in Dubai.