Bekele left it late to hit the lead, overtaking countryman Birhanu Legese on the 38th kilometre before hitting top speed as he chased the world record of 2:01:39 set in Berlin last year by Kenyan Eliud Kipchoge.
Bekele was more than a minute behind the world record time with 10 kilometres to go, but finished in a flurry to better his personal best of 2:03:03 set at the 2016 Berlin Marathon.
Legese finished second with fellow Ethiopian Sisay Lemma in third.
Ashete Bekere, also from Ethiopia, was the fastest of the women, finishing just eight seconds ahead of countrywoman Mare Dibaba in a time of 2:20:14, highlighting the African nation's dominance in the sport.
Bekere and Dibaba were elbow to elbow as they ran through the Brandenburg Gate with just a few hundred metres to go, before Bekere pulled away with the finish line in sight.
Bekele was more than a minute behind the world record time with 10 kilometres to go, but finished in a flurry to better his personal best of 2:03:03 set in 2016.
Bekele put his slow start down to a hamstring complaint.
“I felt something in my hamstring early on and of course I am coming back from injury, I was still in rehab two or three months ago,” he said.
“My preparation wasn't 100 percent. I feel sorry to have missed the world record, it is painful.
“I'm not lucky, but I know my potential and I know I can do this.”
Women's winner Bekere was thrilled with her victory, saying she put her performance down to intuition rather than tactics.
“I am especially delighted to have managed it. I didn't prepare especially for this race, tactics wise, I just ran my own race today.”
While Bekele was favourite for the men's event, women's pre-race favourite Gladys Cherono left in tears with half of the course completed due to an apparent muscle problem.