The Middlesex left-hander struck a magnificent unbeaten 110 off 104 balls to lead the tourists to a nervy two-wicket victory over Bangladesh in Dhaka, to open up an assailable 2-0 series lead.
Morgan, 23, led the charge with smashed eight fours and two sixes as England reached their victory target of 261 with seven balls to spare.
It was his first century for England and he also become the first player ever to score international centuries for two different countries, having previous starred for his native Ireland.
“It got a bit close for our liking but Eoin came in with a fantastic knock and deserved to win the game,” said Cook, who himself added a valuable 60 at the top of the order.
“He was calm under pressure and then dominated in the powerplay – it was a fantastic knock.”
Bangladesh played their first one-day international in 1986 and England are the only team they are yet to beat. But buoyed by an encouraging performance in the first match on Sunday, the Tigers went for the jugular, and thanks to a solid 76 from Mushfiqur Rahim and Imrul Kayes’ patient 63, they raced to 260-6 – their highest ever total against England.
Seamer Tim Bresnan topped the bowling figures with 3-51, while spinners Graeme Swann (2-52) and James Tredwell (0-52), in for the injured Ryan Sidebottom, were frustrated.
Craig Kieswetter, making only his second England start, went second ball for just four, while Kevin Pietersen’s woes continued as he fell lbw to Abdur Razzaq for 18.
Cook and Matt Prior (42) steadied the ship with a crucial 90 partnership only for the Tigers to hit back, claiming the scalps of Luke Wright, Bresnan and Swann in the space of six overs to set up a famous victory.
But Morgan produced a masterclass in keeping England afloat and brought his fine innings and a tense run chase to an end with a huge six.
Relieved Cook added: “There are always areas to improve but when you chase down 260 on a turning wicket you have to be pleased.”