World record holder Kipchoge dropped from lead group in last 4km as 2019 runner-up Kitata takes victory on special looped course in St James's Park.
Eliud Kipchoge suffered just his second defeat in 11 marathons as Shura Kitata claimed his first London Marathon victory on Sunday (4 October).
The reigning Olympic champion was in a lead group of eight men inside the last 5km having appeared slightly ill at ease.
And when Kitata pressed the pace at the front, 2019 winner Kipchoge was unable to respond and soon lost touch.
The Ethiopian continued to force the issue, and he outsprinted Vincent Kipchumba (Kenya) to win in 2:05:41.
On a special loop course in St James's Park closed to the public, the wet and chilly conditions put paid to any attempt at Kipchoge's own world record of 2:01:39 from Berlin in 2018.
A slow pace made it a tactical battle, and it was Kitata who emerged victorious in a thrilling race.
Kipchoge eventually finished eighth in 2:06:49, failing to emulate Brigid Kosgei who retained her women's title earlier in the day.
The 35-year-old looked emotional as he told the BBC, "I am really disappointed. I had a problem with my right ear after it blocked and then I really cramped and had problems with my hip. It was cold but I don't blame the conditions.
"The last 15km I felt it. I felt well in the start. Absolutely there are more marathons in me and I will come back again." - Eliud Kipchoge
The pace was leisurely by his standards with the field running the first half-marathon in just under 63 minutes.
At 30km, Kipchoge was lying seventh in a group of nine runners and not looking completely himself.
He then threw away his cap and made his way ominously to the front alongside fellow Kenyans Benson Kipruto and Vincent Kipchumba.
Last year's runner-up Shura Kitata then moved to the head of affairs with Kipchoge sitting mid-group rather than in his usual position at the front.
But as Kitata upped the pace, Kipchoge cracked with his unbeaten record stretching back to September 2013 coming to an end.
Kitata continued to pour it on at the front with only Kipchumba and another Ethiopian, Sisay Lemma, able to stay with him.
The three strained every sinew in the sprint for the line with Lemma the first to lose ground.
Kipchumba then looked like coming out on top before Kitata produced a final burst to take the win.
It was the 24-year-old's third marathon triumph having won in Rome and Frankfurt in 2017.
He told the BBC, "Kenenisa Bekele was helping me for this race and he advised me how to run. I trained for the same course, I am very happy to win the race."
Earlier, Brigid Kosgei made it back-to-back London Marathon wins with USA's Sara Hall taking a surprise second place.
Kosgei had reigning world champion Ruth Chepngetich for company most of the way before pulling clear at the 30km-mark.
The 26-year-old won in 2:18:58, almost five minutes outside her world record set in Chicago last year.
Hall charged home to overhaul Chepngetich inside the last 100 metres and take second in a new personal best of 2:22:01.
Kosgei said of her decisive move, "I didn’t have anything planned, but I felt good. I felt my body wanted to move, but my legs could not move, so I tried my best.
"The weather affected us today – there was some wind and rain all the way, which made our muscles colder. No one could warm up so it was difficult to even finish."
Olympic 5000m champion and 2018 London Marathon winner Vivian Cheruiyot pulled out before the 30km mark.
There was a surprise to match Kipchoge's defeat in the women's wheelchair event as Nikita den Boer got the better of Manuela Schar.
The Swiss had won the last nine Marathon Majors she had contested, but lost touch with her Dutch rival with two laps to go with den Boer winning in 1:40:07.
David Weir was just denied a ninth London Marathon victory as Canada's Brent Lakatos proved the strongest in a bunch sprint to decide the men's wheelchair race.
Just seven seconds covered the first six home with two-time London winner Marcel Hug in third.
Watanabe Sho was fourth ahead of Jordi Madera and Hokinoue Kota.