It looked as if Hassan's debut marathon would end in disappointment when the 5,000 and 10,000 meters Olympic gold medallist from the COVID-delayed 2020 Tokyo Games was dropped from the leading group and left holding her side after the hour mark.
It would have been impressive enough had the Ethiopian-born Dutch runner, a Muslim who had been fasting due to Ramadan, just completed the course on the rainswept streets of the British capital, with Hassan then grabbing her hip and stopping to stretch off the injury.
Hassan, however, recovered to rejoin the leaders with three miles to go.
Despite making a mess of collecting a drink from a water station and almost being hit by a race motorcycle, the 30-year-old recovered and even offered rival Yalemzerf Yehualaw, last year's winner, a swig from her bottle.
Ethiopia's Alemu Megertu was second in 2:18:37, with Kenya's Peres Jepchirchir, the Olympic champion, third in 2:18:38.
Kenya's Kelvin Kiptum won the men's London Marathon in the second-fastest official time over the distance in history.
The 23-year-old broke the course record with an astonishing time of 2 hours, 1 minute and 27 seconds.
Having broken clear of the field, Kiptum — who ran the third-fastest marathon time in Valencia in December — faded towards the finish and missed out on Eliud Kipchoge's world record by 18 seconds.
"We have never seen anything like this before on the streets of London and Kelvin Kiptum has put in the performance of his life," said BBC commentator Steve Cram, the 1983 1500 meter world champion.
"He blew the field apart."
Geoffrey Kamworor made it a Kenyan one-two, finishing second in 2:04:23, with Ethiopia's Tamirat Tola third in 2:04:59.