Bangladesh squandered a brilliant start by Junaid Siddique, the 19-year-old debutant who smashed 71 from just 49 balls, and Pakistan were indebted to a blazing innings from Shahid Afridi and a late cameo from Imran Nazir as they went into the semi-finals with a perfect record in the Super Eights. Set 141 for victory, Pakistan eased home with four wickets and six balls to spare, after Bangladesh's slow bowlers induced a mid-innings wobble.

Nazir's unbeaten 27 at the end made all the difference after a sloppy Pakistani display, and would have been especially satisfying after he had had to retire hurt three balls into the innings, struck flush on the unmentionables by a delivery from Mashrafe Mortaza. Having swung Mahmudullah for a six over square leg earlier, Nazir struck two fours off Mortaza to hasten the end.

Afridi, restored to the top of the order, had blazed away from the outset, with a straight lash off Mortaza forcing the bowler to hit the deck while taking evasive action. There was a mighty heave for six over midwicket as well, and even the hitherto economical Syed Rasel was not spared, with heaves through midwicket and a big six over long-on.

Mohammad Hafeez played his part with a brisk 23, but it was his exit, caught at long-off, that triggered a slide. Afridi went soon after, edging Abdur Razzak behind, after careening to 39 from just 15 balls. With Salman Butt once again becalmed, the innings lost momentum as the spinners wheeled away accurately and so quickly that the batsmen barely had time to formulate a plan.

It was left to the ever-reliable Shoaib Malik to snap everyone out of slumber, with a gorgeous flick though midwicket and a sweep that went to the fine-leg rope. But when he was caught at deep square leg off Mahmudullah, Bangladesh scented an opportunity, and Mortaza reinforced that feeling by trapping Misbah-ul-Haq, hero of the victory against Australia, in front of the stumps. Butt, who looked half asleep, was run out dawdling late on, but Nazir ensured that there would be no repeat of Bangladesh's famous World Cup victory of 1999.

The Bangladesh innings was a one-man show, but Siddique should have gone when he had made just 2, only for a miscued pull off Mohammad Asif to be fumbled over his head by Misbah. In general though, it was a listless opening from Pakistan, with plenty of wides and no-balls and Asif bowling at close to Arjuna Ranatunga's pace.

Tamim Iqbal was superbly run out by Hafeez running in from point, but Siddique was quickly into his stride, playing beautiful strokes down the ground off both new-ball bowlers. There was one more lucky escape, as a hoick off Tanvir evaded Nazir's hands at deep midwicket, and Siddique celebrated the reprieve with an imperious hit over the rope in the same direction.

Even the entrance of Afridi, one of the most effective bowlers in the competition, didn't faze him, with two fours struck down the ground, the second of them palmed on to the rope by Umar Gul at long-on. It took him just 35 balls to reach 50, and with Aftab Ahmed picking off the singles at the other end, Bangladesh appeared well set for an imposing total.

It all changed with a headless-chicken charge from Aftab, and a comfortable stumping for Kamran Akmal off Hafeez. By the time Shakib Al Hasan popped one back off the leading edge in Hafeez's next over, the innings was in disarray, with Mohammad Ashraful having already departed, trapped in front by Afridi.

Siddique heaved Hafeez for two sixes over midwicket in a bid to redress the balance, but Malik's decision to bowl only his second over of the competition killed off any hopes of a big score. Siddique went for one big hit too many, and with Nadif Chowdhury nicking one behind, it was left to the tail.

Gul, entrusted with bowling the final overs once again, ran out Mahmudullah, and then struck Mortaza flush on the visor with a well-directed short ball. Asif added insult to injury by bowling him behind his legs, as Bangladesh yet again lost the thread after the brightest of starts. For Pakistan, it was a sloppy day out. Sterner tests await.