The triple Olympic champion weathered Kipsang's blistering early pace before he attacked with two kilometres left, crossing the line in an official time of two hours, three minutes and three seconds, six seconds off Dennis Kimetto's world record.
Kipsang, a former world record holder who won in Berlin three years ago but like Bekele missed last month's Rio Olympics, could not match the Ethiopian's pace towards the end and finished 10 seconds adrift in the fourth-fastest time ever.
"I wanted to run a personal best, that was my first goal," Bekele, who shaved more than two minutes off his previous fastest, told reporters. "The time was fantastic but I am a bit disappointed as well, as I missed a few seconds in the end."
A strong early pace, with the leading runners passing the five kilometre mark in an eye-popping time of 14 minutes 20 seconds, meant the main contenders had the world record in their sights from the start.
Both Kipsang, who set his world record in Berlin in 2013 only to lose it to fellow Kenyan Kimetto a year later, and Bekele stuck behind the pacemakers, with the experienced Emmanuel Mutai joining them.
A lightning fast race was confirmed by the halfway mark with the leading pack more than a minute inside world record pace as Mutai, second in Berlin 2014, dropped off the pace.
It quickly became a two-horse race and after 30 kilometres it was Bekele's turn to drop some 30 metres behind the leader as Kipsang staged his first attack.