Kemar Roach and Sunil Narine took three wickets apiece in the morning as Pakistan were restricted to a low total despite a career-high one-day international score of 96 not out from captain Misbah ul-Haq.
Earlier in the innings Denesh Ramdin was barracked by the majority of the 20,491 strong crowd for claiming to have caught Misbah off Roach, but after a replay - which showed he scooped the ball off the turf - the umpires reinstated the Pakistan skipper.
Chris Gayle led from the front for the Windies in the afternoon, hitting 39, but the rest of the order fell relatively cheaply, leaving the world Twenty20 champions in trouble on 165 for eight.
Roach and Ramdin showed nerves of steel to see out the match though to give the Windies a winning start to their Champions Trophy campaign with just under 10 overs left.
There was no sign early on that the West Indies would find the run chase hard.
Their openers started aggressively, but Johnson Charles over-exerted himself, hooking to Wahab Riaz on the long leg boundary before Muhammad Irfan removed Darren Bravo for a duck.
Irfan and Junaid Khan piled the pressure on Gayle with a flurry of short deliveries, but the Windies opener responded in typically devastating fashion with a huge six over the bowler's head in the seventh over.
Gayle and Darren Bravo steered the West Indies past 50 in the 11th over and looked in control before two wickets in two overs gave Pakistan a glimmer of hope.
First Gayle wafted at - and missed - a drifting ball from Saeed Ajmal and Wahab then removed new batsman Ramnaresh Sarwan (one) with a peach of a short delivery which he edged behind.
Kieron Pollard and Marlon Samuels added 13 off 45 to restore some composure, but Samuels then went down the track trying to punt Mohammad Hafeez back over his own head, but he missed and Akmal whipped the bails off to leave the Windies 94 for five.
Misbah brought Irfan back in to the attack to try to keep the pressure on the West Indies, but Pollard and Dwayne Bravo dug in and edged closer to Pakistan's total.
Their partnership ended on 43 when Pollard was dismissed for 30 after being caught behind off Wahab, just 34 short of their target.
More drama followed when Dwayne Bravo was trapped leg before wicket on 19 by Ajmal to leave the Windies at 143 for seven in the 37th over.
Narine was dismissed with the West Indies just six short of their target but Roach hit a powerful four over the covers to complete a nervy win.
Earlier in the day Roach removed Imran Farhat (two), Hafeez (four) and Asad Shafiq (nought) early on.
Misbah survived a close call for LBW and he thought he was out the ball after following a short delivery from Roach which he edged behind to Ramdin.
Umpire Steve Davis gave the batsman out, but Misbah was reinstated after replays showed the ball had touched the ground as Ramdin scooped it up.
A 50 partnership between Jamshed and Misbah steadied the ship, but only momentarily as Narine dismissed Jamshed for after he picked out Ravi Rampaul.
Narine removed Shoaib Malik for a golden duck after he chipped the ball to Dwayne Bravo and two overs later Pakistan were 110 for six after Narine took his third wicket in 10 balls - that of Kamran Akmal (two), who was caught behind.
Wahab (six), Ajmal (two) and Junaid (duck) all fell as Pakistan were left at 138 for nine.
Misbah opened his shoulders in the final 10 overs, scoring two maximums, but Irfan was removed in the 48th over to complete a miserable day with the bat for Pakistan.