Jemima Sumgong recovered from a fall to win the women’s title and Eliud Kipchoge retained the men's in the second-fastest ever time.
In cold conditions, under slate grey skies the 36th London Marathon saw nearly 40,000 runners line up at the start line.
The British astronaut Major Tim Peake gave a 10-second countdown at the beginning of the race from space. He ran the 42 km on a treadmill on board the International Space Station.
More than a million runners have now completed the marathon over the years and many hundreds of millions of rand raised for good causes through sponsorship.
This year the fancy dress runners included people dressed as hot dogs, dinosaurs, princesses and gorillas.
From Sumgong, though, there was nothing but bravery as the 31-year-old picked herself up after banging her head on the ground when she was tripped at a water station eight kilometers from the finish.
Astonishingly, the experienced Kenyan battled back into contention and prevailed in a duel with last year’s winner, Ethiopia’s Tigist Tufa, for her first major marathon title since Rotterdam three years ago.
Kipchoge, the former teenage track phenomenon whose performance confirmed him as one of the greatest all-round talents seen in endurance running, won his sixth of seven marathons with a sublime display.
In cool conditions perfect for a stellar field, Kipchoge demolished his opponents one by one as they could not live with the world-record pace. He finally broke away from fellow Kenyan, New York champion Stanley Biwott, in the final three kilometers.
The 31-year-old powered home to beat Biwott by 46 seconds and shatter Kenyan Wilson Kipsang’s course record of 2:04:29.
In third place was Ethiopian distance great Kenenisa Bekele, who was over three and a half minutes behind the champion in 2:06:36. World record holder Kimetto finished ninth in 2:11:44.