The 34-year-old Kenyan was assisted by 41 pacesetters, including former Olympic and world record holders, who dropped in and out of the race and helped to protect him from the wind.
Kipchoge’s time will not count as an official world record, as it was not an official race, but will be seen as a historic moment in distance running.
It is the second occasion that the four-time London Marathon winner has attempted to run a sub-two-hour marathon – he ran two hours and 26 seconds in Monza in 2017.
The official world record for the 26.2 miles run is two hours, one minute and 39 seconds, a time Kipchoge set in Berlin last year.
Kipchoge, who before the run compared the achievement to landing on the moon, said it was the biggest athletics milestone since Roger Bannister broke the four-minute mile barrier in 1954.
“I am feeling good, after Roger Bannister it took another 65 years to make history,” he said. “Now I’ve gone under two hours to inspire other people and show the world that nobody is limited.”
“I can say I’m tired. It was a hard run. Remember, the pacemakers are among the best athletes in the world, I appreciate them for doing the job.
“It means a lot for Kenya.”
Kenya’s president Uhuru Kenyatta tweeted his congratulations to the 2016 Olympic gold medallist, writing: “You’ve done it, you’ve made history and made Kenya proud while at it.
“Your win today will inspire tens of future generations to dream big and to aspire for greatness.”