Kenya's Margaret Okayo won her debut London Marathon after a tough battle with Romania's Constantina Dita. Okayo went off fast and then appeared to pay the price, when she fell back at 10 miles and saw Dita go by.
But she recovered well and re-gained her lead at 20 miles before going away to win comfortably in two hours 22 minutes 35 seconds.
Svetlana Zakharova stole second late on from a tiring Dida, with pre-race favourite Sun Yingjie further back.
Okayo, twice a winner in the New York Marathon and already selected for the Olympics, will now be considered a serious rival to Britain's Paula Radcliffe ahead of the marathon in Athens.
"I'm freezing wet but it's nice," said Okayo. "I hope Athens will be better for me because it's warm and my body likes warmth."
Tracey Morris enhanced her chances of competing in the Olympics by becoming the first British finisher across the line.
The 36-year-old beat the Olympic qualifying time by over a minute.
The Leeds runner, who has been running seriously for just 18 months, took over an hour off her previous best, finishing in a time of 2.33.52secs.
Morris should be selected alongside Paula Radcliffe and Liz Yelling for the Olympic team.