La course a été marquée par une échappée du trio Goesinnen (Skill Shimano), Lowik (Rabobank) et L.Roberts (Team CSC) parti après 12 km et rejoint à une vingtaine de km de l'arrivée après avoir eu jusque 14 minutes d'avance.
Dans la dernière difficulté, Pozzato et Wegmann prennent un léger avantage avant d'être rejoints par un important peloton.
A 9 km de l'arrivée, Voigt, Bettini, Lastras, Veikkanen et Ricco se détachent. Ils sont rejoints deux kilomètres plus loin sous l'impulsion de la formation T-Mobile qui roule pour Ciolek. Gerrans et Gusev vont tencher leur chance mais sans réussite.
Ballan attaque dans le dernier km, le coureur de Rabobank dans sa roue hésite (une erreur fatale) et l'Italien n'est pas rejoint. Freire et Ciolek échouent à quelques centimètres de l'Italien.
A noter que Tom Boonen a été victime d'une chute.
Le Classement
1 Alessandro Ballan (Ita) Lampre - Fondital (42.811 km/h)
2 Oscar Freire Gomez (Spa) Rabobank
3 Gerald Ciolek (Ger) T-Mobile Team
4 Danilo Napolitano (Ita) Lampre - Fondital
5 Erik Zabel (Ger) Team Milram
6 Davide Rebellin (Ita) Gerolsteiner
7 Paolo Bettini (Ita) Quick.Step Innergetic
8 Greg Van Avermaet (Bel) Predictor - Lotto
9 Peter Wrolich (Aut) Gerolsteiner