Hafeez struck a six and 10 fours in his 11th one-day international century, sharing an unbeaten fifth-wicket partnership of 106 with Babar Azam to guide his side to victory.
Azam finished on 62 not out off 62 balls, reaching his fifty with a huge six off Chris Woakes shortly before the end of the match.
England lost Jason Roy, Joe Root and Alex Hales with just 14 runs on the board before a fine partnership of 133 between captain Eoin Morgan and James Taylor dragged them back into the game.
Morgan hit 11 fours in his 76 and Taylor made 60 but the dismissal of the skipper prompted another collapse as Jos Buttler, Taylor, Moeen Ali and Adil Rashid followed him back to the pavilion for the addition of 33 runs.
Woakes hit 33 before being run out to end England's innings with two balls of their 50 overs remaining.
The second game in the four-match series is in Abu Dhabi on Friday.
(Reporting by Ed Osmond, editing by Rob Hodgetts)
Share
