Pakistan defeated Asian rivals Bangladesh by four wickets at Newlands to prolong their stay in Cape Town for the World Twenty20 semi-finals.
Shoaib Malik's team completed a clean sweep of Group F, having previously seen off Sri Lanka and Australia, and will now face the second-placed team of Group E - either South Africa, India or New Zealand.
Shahid Afridi charged Pakistan towards their modest 141-run victory target with a typically pugnacious 39, off only 15 deliveries.
Opener Afridi attacked from the off, spiralling his first ball over the covers for a couple and smashing his next for four.
The first of his two brutally-struck sixes arrived in the third over of the innings as Mashrafe Mortaza was clubbed over wide long-on - a fate left-armer Syed Rasel also suffered the very next ball after removing Mohammad Hafeez for the initial breakthrough.
Afridi perished in the next over, the seventh of the innings, when he cut hard at left-arm spinner Abdur Razzak to be caught behind.
Wicketkeeper Mushfiqur Rahim followed that fine take by stumping Younus Khan off a leg-side wide by Razzak but that trot of three Pakistan wickets for ten runs - which left the chase at 69 for three in the ninth - proved an isolated spell of success for the Bangladesh bowlers.
It was Pakistan misjudgements that accounted for three further wickets - including a run-out caused by Salman Butt daydreaming at the non-striker's end.
Bat also dominated ball at the start of the contest, after Malik won the toss.
Bangladesh's teenage opener Junaid Siddique revelled on his international debut but there was little in support of a fine 71, from only 49 deliveries.
The left-hander struck six fours and three sixes but his ten colleagues managed just one other boundary between them as Pakistan's spinners suffocated the scoring with regular wickets.
Aftab Ahmed was second top scorer with 15, one of only three other Bangladesh players to reach double figures.