Kenya's Eliud Kipchoge ran the second fastest marathon in history to win the London Marathon for a fourth time as Britain's Mo Farah finished fifth.
Kipchoge, 34, who broke the world record in Berlin last year, triumphed in two hours two minutes 38 seconds.
Farah finished three minutes one second behind Kipchoge, while fellow Briton Callum Hawkins was 10th.
Kenya's Brigid Kosgei, 25, became the youngest female London winner, with Britain's Charlotte Purdue 10th.
Ethiopia's Mosinet Geremew and Mule Wasihun finished second and third respectively behind Kipchoge, who finished 59 seconds shy of his world record of 2:01:39.
Earlier, American Daniel Romanchuk and Switzerland's Manuela Schar won the men's and women's elite wheelchair races.
More than 40,000 runners, some dressed as giraffes, bells, cars and even Big Ben, took to the streets of the capital as the amount raised by the London Marathon passed £1bn.
- Relive the London Marathon - videos and text coverage
- Get running in just nine weeks with Couch to 5K
'The wheels came off and I was hanging in there'
Farah's time of 2:05:39, although outside his personal best, is the second fastest by a Briton.
He was dropped by the leading pack around the halfway mark as the men's field started to string out with Kipchoge dictating the pace.
Farah was involved in a row with double Olympic champion Haile Gebrselassie this week but said it "didn't distract me at all".
"I felt great with my start," the four-time Olympic champion, 36, told BBC Sport.
"My aim was to follow the pacemaker, but after 20 miles when he dropped out, the gap opened up and it became hard to close.
"My aim was to try and reel them back but the wheels came off and I was hanging in there."
Farah also said he had yet to decide which race to contest in this year's World Championships in Qatar, where he could compete in either the marathon or 10,000m.
"At the minute my brain is all over the place," he added. "I am going to have a chat with my coach and my agent and have a step back. I think for me I want to do a marathon."
Hawkins, making his return to the marathon for the first time since collapsing from exhaustion in the 2018 Commonwealth Games, set a Scottish record of 2:08:14.
Alongside Farah, Hawkins and Purdue, Dewi Griffiths and Tish Jones also fulfilled the qualifying criteria for the World Championships, which take place in Doha in the autumn.
'I only chase one rabbit and that was London'
Kipchoge, who won Olympic gold at Rio 2016, has now won 11 of the 12 marathons in which he has competed, only missing out in Berlin in 2013.
He broke his own London Marathon record - set in 2016 - by 28 seconds.
"I'm happy to win on the streets of London for the fourth time and to make history," Kipchoge told BBC Sport.
"The crowd in London is wonderful and that spirit pushed me. From the first kilometre to the last, everybody is shouting. I'm happy to cross the line."
Asked about his next race, he said: "As usual, I do not chase two rabbits - I only chase one and that was London. I have caught that rabbit so I will discuss with my team what follows. The second option is still open."
Farah said: "Congratulations to Eliud and the better man won today. He is a very special athlete and he is humble.
"If Eliud can run those sort of times it just gives us another level of possibility. It's a different mindset chasing someone and it takes the pressure off me."
- London Marathon 2019: Eliud Kipchoge on freedom, simplicity & power of the mind
- Eliud Kipchoge: The stats behind his world record at the Berlin Marathon
Kosgei wins maiden women's title in London
Kosgei beat defending champion and compatriot Vivian Cheruiyot to win for the first time in London.
She crossed the finish line in 2:18:20, almost two minutes ahead of Cheruiyot as Roza Dereje of Ethiopia finished third.
The top three had left three-time London Marathon winner Mary Keitany behind at the 30km (18.6-mile) mark. She finished fifth, two minutes 38 seconds behind Kosgei.
Kosgei is 25 days younger than Aselefech Mergia, the previous youngest winner, when she won the 2010 race.
Purdue, 27, beat her personal best by almost four minutes to record the third-quickest time by a British woman of all time.
Her time was also within the qualifying time for the Tokyo 2020 Olympics.
She told BBC Sport: "I am over the moon with that. To smash my personal best is all I could to ask for.
"I always get tempted to go with the leaders, but now I run better in the second half so I held back and that worked for me.
"I always promise myself in the last mile that I would never run another step. But this is not my retirement."
- You shrink how much? 7 stats to make you go wow!
- 'Life's not a sprint' - Yizzy's track for the London Marathon
- For advice on how to take up running and details of clubs near you, go to BBC Sport's Get Inspired website.