The 27-year-old Kenyan, who set the world record of 2hrs 3.38 seconds at the 2011 Berlin marathon, had a painful fight to the front in the lead group and only emerged in the lead in the 26-mile-race's closing stages, finishing with an official time of 2hrs 6.08 minutes.
A cold front over Germany meant the race was run with the thermometer reading between two and five degrees Celsius, making conditions very difficult for the record number of 16,034 runners taking part.
With 450,000 people lining the route, Germany's oldest city marathon broke a record for the number of on-lookers.
Makau's victory was made all the more remarkable by the fact he was suffering from injuries to his thighs and knees and could be seen clutching his thigh early on in the race.
"That was my hardest marathon so far,” said Makau. “I had muscular problems because of the cold and for a long time I couldn't speed up because my legs weren't reacting. It was really hard for me to come back.”
“My focus was: just don't give up,” said the world record holder, who had to drop out of the London marathon earlier this year and was overlooked for a nomination to the Olympic Games.
The Kenyan athlete will receive €30,000 for his achievement and the respect of runners worldwide who will surely forgive Makau's failure to break his own record in light of the unfavorable conditions.
“The priority was the win. After all, you can't run a world record in every race,” he said.
Ethiopia's Deressa Chimsa came in second place, clocking 2hrs 6.52 mins, with Kenya's Gilbert Kirwa third with 2hrs 7.35 mins.
The women's race was won by Ethiopia's Meselech Melkamu who set a course record on her marathon debut in a time of of 2hrs 21.01.
She finished ahead of second-placed Kenyan Georgina Rono in 2hrs 21.39 with defending champion Mamitu Daska of Ethiopia third in 2hrs 23.52.