Iqbal (54) shared a crucial 97-run partnership for the fifth-wicket with Salman Qadir (42) to help his team score 230 for nine after electing to bat at the Bangabandhu National Stadium.
Some tight bowling and a spate of run-outs then denied the West Indies, who were bowled out for 205 under lights.
Iqbal struck three boundaries and a six off 72 deliveries while Qadir hit a solitary four during his 63-ball knock as they rescued Pakistan from a precarious 81 for four. "Coming in to bat when the chips were down, we decided to play cautiously," Iqbal said about his partnership with Qadir. "We did what was needed at that stage."
Left-arm spinner Rishi Bachan, who had earlier pegged Pakistan back with a three-wicket haul, ensured Iqbal did not stretch his innings as he came up with a superb direct throw from extra-cover for a run out dismissal.
Opener Adnan Zaheer (33) and Zulqarnain Haider (23 not out) were the others to chip in with useful scores for Pakistan.
In reply, the West Indies started strongly through openers Tishan Maraj (32) and Xavier Marshall (26), who put on 69 runs, but the others failed against the spin attack led by Tariq Mahmood (3-34).
Captain Denesh Ramdin (36) gave the West Indies a ray of hope but Pakistan wrested the initiative with some tight fielding which got them four run outs.
Pakistan 230-9 in 50 overs (Asif Iqbal 54, Salman Qadir 42, Adnan Zaheer 33, Rishi Bachan 3-34, Mervin Mathew 2-35)
West Indies 205 in 47.1 overs (Denesh Ramdin 36, Tishan Maraj 32, Tariq Mahmood 3-34, Jahangir Mirza 2-29).
West Indies reaches U-19 WC finals