
It was the fastest time in the last four years at the marathon, which started 31 years ago.
Benjamin Serem finished a distant second on Saturday, crossing the finish at Olympic Stadium in 2:22.51.
Isabellah Andersson of Sweden won the women's race for the second straight year, finishing in 2:33.52.
A record 18,736 runners from 70 countries entered the event.