Morgan's tally surpassed the record of 16 previously shared by India's Rohit Sharma, SA's AB de Villiers and West Indies' Chris Gayle.
Manchester: England skipper Eoin Morgan scripted history on Tuesday as he recorded 17 sixes in a match against Afghanistan in the ongoing ICC Men's Cricket World Cup. These sixes mark the most number of sixes scored by a single batsman in an ODI.
Before Morgan, the record for the most number of sixes by a single batsman was held by India's Rohit Sharma, West Indies' opener Chris Gayle, and South Africa's AB de Villiers. All these batsmen had hit 16 sixes in a single innings.
Morgan came out to bat in the 30th over and he started playing in aggressive fashion from the very start. Morgan provided the much-needed impetus to the England innings and Root played second fiddle to him.
Morgan brought up his century off just 57 balls, registering the fourth fastest century in the World Cup. The left-handed Morgan continued to pile on the misery on the Afghanistan bowlers.
England skipper Morgan hit 17 sixes in his innings, recording the most number of sixes by a batsman in a single ODI. Morgan finally departed in the 47th over after playing a knock of 148 runs off just 71 deliveries with a strike rate of 208.45.
Earlier, England openers James Vince and Jonny Bairstow provided a steady start at the top as the duo put on a partnership of 44 runs, but their stand was cut short as Vince was sent back to the pavilion in the 10th over by Dawlat Zadran.
Joe Root came out to bat next and he continued his rich vein of form. He along with Bairstow put together a partnership of 124 runs, which saw the right-handed Bairstow bringing up his fifty. Bairstow missed out on his century as he was dismissed for 90 after being dismissed by Afghanistan skipper Gaulbadin Naib, reducing England to 164 for two in the 30th over.
After the completion of fifty overs, England scored 397 runs for the loss of six wickets.