Sifan Hassan takes London Marathon title in stunning debut as Kiptum breaks men's record
Hassan finished in two hours, 18 minutes and 34 seconds with a desperate sprint in the last 500 metres.
The middle-distance athlete looked to be in pain around the hip flexor just under an hour in, falling behind as she stopped and stretched, but she caught up again with the leading pack with just over six kilometres to go.
Hassan has snatched victory from the jaws of defeat before: in the 1500 metres at the Tokyo Olympics she took a hard tumble, picked herself up and charged ahead to win gold.
"I learned to be patient and just to run your own race," Hassan told a news conference. "Just keep going as much as possible and maybe you will surprise yourself."
Kenya's Kelvin Kiptum (23) later broke the London Marathon course record, finishing in two hours, one minute, 25 seconds, nearly three minutes ahead of second-placed Geoffrey Kamworor (30) in a resounding win.
Kiptum, who ran the fastest-ever debut marathon in Valencia last year, made his break at mile 19, establishing a solid lead to deliver the second-fastest marathon of all time.
He collapsed on to the ground, exhausted, after crossing the finish line.
"I am so happy with the result," Kiptum told the BBC. "I don't know what to say right now, I am just grateful."
In his last marathon before retirement, Britain's Mo Farah finished ninth in 2:10:28.