Kipchoge, who skipped last year's race to attempt a sub-two-hour marathon in Italy, could not break Dennis Kimmetto's world record as high temperatures made running conditions difficult in the English capital.
Women's favourite Mary Keitany attempted to break Paula Radcliffe's mixed race record -- assisted by male pacemakers -- but the Kenyan struggled late on in the race, eventually finishing fifth and unable to add to her three London titles.
That allowed Cheruiyot in to take her first London crown, having won her first career marathon in Frankfurt only in October.
Radcliffe's record, set in 2003, did seem under threat at first as Keitany comfortably led for the majority of the race but the conditions got the better of her in the end.
The men's race went out at a blistering pace, with early leader Guye Adola clocking four minutes 22 seconds in the first mile, and Farah stayed with the group until a bizarre incident when he missed his drinks bottle around the 10-mile mark, which delayed him after a heated exchange with a steward.
"The drink station was confusing, I was table four, I went to pick it up," Farah told the BBC. "The staff were helpful at the end but at the beginning they were trying to take a picture rather than giving me the drink."
Kipchoge overtook Adola early on and led from the front, with the pace remaining on course for a world-record time until the second half of the race, when the heat intensified.
Tola Shura Kitata of Ethiopia stayed with Kipchoge until close to the end but the 2015 and 2016 champion strode clear to win with a time of 2:04:17 - two minutes 20 seconds off the world record.
Officials initially gave Kipchoge's time as 2:04.27 but revised the times after discovering a computer error.
Farah came home in third, finishing with 2:06:21 and breaking Steve Jones's British Marathon record which has stood since 1985.
"I enjoyed the race very much," Kipchoge said. "I still enjoy the win and I'm happy to be able to win for the third time in London."
Keitany was a colossal 32 seconds ahead of Radcliffe's 10-mile time, with Ethiopian rival Tirunesh Dibaba for company.
However, after Dibaba pulled up and withdrew from the race, Keitany slowed dramatically, with her 5:50 22nd-mile time proving costly as Cheruiyot stormed past her fellow Kenyan to snatch a surprising victory in 2:18.31.
"The reason it was so good for me today was because I started slowly," Cheruiyot said. "I saw Mary and I got her and I thought: "yes, today I am going to be a winner of the London Marathon."
In the men's wheelchair race, Briton David Weir stormed to a eighth London victory after a thrilling finale with three athletes racing for the line, while Australia's Madison de Rozario won a shock first title in the women's event.