Eoin Morgan blasted a record 17 sixes in a blistering innings of 148 to power England to a commanding 397 for six in their Cricket World Cup group stage match against Afghanistan.

The left-hander smashed the fourth-fastest World Cup century off just 57 balls and went on to beat the previous six-hitting record shared by India's Rohit Sharma, West Indies' Chris Gayle and South Africa's AB de Villiers.

Kevin O'Brien's world record remains intact for hitting the fastest World Cup century. The big-hitting Irish batsman raced to a century at the 2011 World Cup in 50 deliveries, seven balls less than it took former team-mate Morgan in Manchester.

Jonny Bairstow smashed 90 and Joe Root made 88, but it was Morgan's breathtaking six-hitting display that turned the match into a statistician's delight.

The team's combined 25 sixes broke England's own record of 24 in an ODI match.

Seemingly defenceless against Morgan's onslaught, Afghanistan's spin spearhead Rashid Khan logged the worst bowling figures in the history of the World Cup - 110 runs off nine overs without a single wicket.

Adding insult to injury for the Blue Tigers, the match was watched from the stands by Afghan President Ashraf Ghani.

In England's top four, only James Vince (26), replacing the injured Jason Roy in the playing XI, missed out on a half-century.

Morgan himself had an early stroke of luck when he was dropped on 28 by Dawlat Zadran in the deep. It proved a costly mistake for Afghanistan who sit at the bottom of the points table after four defeats in a row.

Dawlat (3-68) was the pick of the Afghan bowlers, but it was little consolation after dropping Morgan which allowed England to post the sixth-highest team total in World Cup history, and their own highest ever at the biggest event in the one-day game.