Buttler smashed 12 sixes in his 150, from only 77 balls, while Morgan was almost subdued by comparison, compiling 103 from 88 balls as England scored 418 for six off their 50 overs
Jos Buttler and Eoin Morgan made centuries before Adil Rashid took four wickets in five balls as England beat West Indies by 29 runs in an astonishing fourth one-day international in Grenada on Wednesday.
Spectators were left ducking for cover as the teams piled up a world record 46 sixes in St. George's -- 24 by England and 22 by West Indies.
England's total surpassed the 23 hit by West Indies in the first game last week, while the combined tally bettered the 38 sixes hit by India and Australia in Bengaluru in 2013.
Buttler smashed 12 sixes in his 150, from only 77 balls, while Morgan was almost subdued by comparison, compiling 103 from 88 balls as England scored 418 for six off their 50 overs.
West Indies impressively chased the target with opener Chris Gayle, who hoisted 14 sixes and passed 10,000 ODI career runs, smashing 162 from 97 balls.
Gayle's innings meant West Indies were ahead of the required run-rate for much of their chase and looked capable of achieving a remarkable victory.
It took a fine spell by fast bowler Mark Wood (4-60) and a match-winning 48th over by leg-spinner Rashid (5-85) to seal victory as West Indies were dismissed for 389, their highest one-day score.
The victory gave England a 2-1 lead in the series, which lost a game when rain washed out Monday's third match in Grenada.
"Tonight was such a close game it could have gone either way," a relieved Morgan said. "Helluva game of cricket. It almost needed something special to win us the game with the ball and that was Adil Rashid alongside Mark Wood.
"Collectively as a group we battled brilliantly. Jos is built like a champion racehorse and when he gets out in his stride he's very difficult to stop.
"Watching him in full flow today was exceptional."
West Indies captain Jason Holder said his team's batting attitude had been "not to die wondering".
"We knew what run rate we had to keep up with and it was just a matter for us to just keep going and be fearless," he said, paying tribute to 39-year-old Gayle, who will retire from one-day internationals after the World Cup in England.
"To get 10,000 runs in any format of cricket is a great achievement. It's unfortunate he has announced his retirement (because) he seems to be getting better with age."
The final match of the series will be in St. Lucia on Saturday.
ENGLAND INNINGS R B
Bairstow b Thomas 56 43
Hales c Hetmyer b Nurse 82 73
Root c Hope b Thomas 5 10
Morgan c Holder b Cottrell 103 88
Buttler b Brathwaite 150 77
Stokes c Hetmyer b Brathwaite11 10
Moeen not out 0 1
Extras (b1, lb1, nb2, w7) 11
Total (50 overs) 418/6
Fall Of Wickets
1-100 (Bairstow), 2-120 (Root), 3-165 (Hales), 4-369 (Morgan), 5-417 (Buttler), 6-418 (Stokes)
Cottrell 9-0-64-1 (1w), Holder 7-0-88-0 (1nb, 1w), Nurse 10-0-68-1, Bishoo 4-0-43-0 (1w), Brathwaite 10-0-69-2 (1w), Thomas 10-0-84-2 (1nb, 3w)
WEST INDIES INNINGS R B
Gayle b Stokes 162 97
Campbell c Root b Wood 15 9
Hope c Buttler b Wood 5 7
Bravo c Stokes b Wood 61 59
Hetmyer c Hales b Wood 6 2
Holder st Buttler b Rashid 29 35
Brathwaite c Morgan b Rashid50 36
Nurse c Plunkett b Rashid 43 41
Bishoo c Stokes b Rashid 0 2
Cottrell not out 0 0
Thomas st Buttler b Rashid 0 1
Extras (lb5, w12, nb1) 18
Total (48 overs) 389 all out
Fall Of Wickets
1-24 (Campbell), 2-44 (Hope), 3-220 (Bravo), 4-226 (Hetmyer), 5-295 (Gayle), 6-301 (Holder), 7-389 (Nurse), 8-389 (Brathwaite), 9-389 (Bishoo), 10-389 (Thomas)
Woakes 10-0-91-0 (5w), Wood 10-0-60-4 (1w), Plunkett 8-0-40-0 (3w), Stokes 8-0-77-1 (1nb, 2w), Rashid 10-0-85-5, Moeen 2-0-31-0
England won by 29 runs, lead 5-ODI series 2-1
MoM: Jos Buttler