The 25-year-old Italian, who turned professional three years ago, escaped from a breakaway group of eight riders with some 800 metres remaining in the 156-mile ride around Hamburg on a damp and windy day.
"Everybody in the group was watching each other and I think nobody was expecting me to try anything," said Celestino, who came a modest 79th in the race last year.
Young German Raphael Schweda and Latvian champion Romans Vainsteins came second and third, three seconds later to complete a podium of outsiders.
Belgium's Andrei Tchmil finished with the pack 19 seconds late to retain the overall lead in the World Cup standings. Pre-race favourite Erik Zabel, of Germany, won the sprint of the main bunch for ninth place.
Awful conditions with gusty winds and occasional downpours made the usually relatively undemanding race particularly difficult. Several riders, among them France's Christophe Moreau and veteran Dane Rolf Sorensen, crashed out.
Some 600,000 spectators lined the roads and cheered on the local hero Jan Ullrich, who has fully recovered from the knee injury which forced him to miss this year's Tour de France. Ullrich, who had said his goal was to help his team- mate Zabel, was occasionally seen in front.
"The conditions were not easy but I felt OK," said the 1997 Tour de France winner, who has hardly raced at all this year and is preparing for next month's Tour of Spain and the World Road Championship in Italy in October.
In Lisbon, Ukrainian Tatiana Styazhkina won the women's 66-mile road race in 3hr 1min 11 sec, clinching her second gold at the European Under- 23 Road Racing Championships. Italian Michele Gobbi clocked 4:17:14 to win the men's 103-mile event.
Styazhkina also won the women's 12.5-mile time trial on Friday, while Croatia's Martin Cotar won the men's 18-mile circuit.