Chasing a daunting 180-run target, England came close with Eoin Morgan (71 not out) and Alex Hales (68) putting on a resolute 107-run partnership for the third wicket but in the end they fell short.
Scorecard
England had lost Craig Kieswetter and Luke Wright for first over ducks but Hales, who hit five boundaries and two sixes off his 51 balls, and Morgan's 36-ball knock, with five sixes and four boundaries, defied West Indies's four-pronged spin attack.
England needed 125 runs in their last 10 overs but Morgan and Hales paced the innings well before Marlon Samuels bowled an excellent last over, conceding only eight runs.
West Indies were set on their way for a big total by openers Johnson Charles and Chris Gayle.
Charles smashed three sixes and 10 well-timed boundaries in his 56-ball 84 while Gayle hit four sixes and six fours in his 35-ball 58.
West Indies had raced to 103 by the 11th over when Gayle was finally out, caught by Steven Finn at long-on off as the left-hander tried to hit Graeme Swann out of the ground.
Three of his sixes came in one over from left-arm spinner Samit Patel.
But Gayle's dismissal allowed England to pull back as they dismissed Marlon Samuels (two) and Kieron Pollard (one) in quick succession, with Stuart Broad claiming one wicket besides bowling a maiden over.
Charles finally holed out at mid-on, missing a low Jade Dernbach full toss and was caught by Jonathon Bairstow.
Broad was the pick of England bowlers with 2-26.