Longue de 294 kilomètres, la première classique de l'année a vu la victoire de l'espagnol, ex-triple champion du monde Oscar Freire.
A une vingtaine de bornes de la Via Roma (nom de l'avenue d'arrivée) dans l'ascension de la Cipressa Yaroslav Popovych (Discovery Channel), Franco Pellizotti (Liquigas) et Andrea Moletta (Gerolsteiner) distancent le peloton. Mais dans la descente Andrea Moletta chute grièvement et doit laisser ses deux compagnons d'échappée partir sans lui.
Mais le peloton réagit (Quick-Step, Lampre, Milram) et les deux fuyards se font rejoindre au pied du Poggio, la dernière difficulté du jour dont le sommet est situé à 4 kilomètres de l'arrivée. Un groupe d'une dizaine d'hommes se détachent, parmi eux Phillipe Gilbert (Française des jeux), Riccardo Ricco' (Saunier Duval) et Matthias Kessler (Astana) qui se fera lâché avant le sommet.
En haut du Poggio les deux échappées ne comptent plus que 10 secondes d'avance sur le reste du peloton.
Ils se font rattraper sous la flamme rouge, et sont avalés par le train bleu de la Milram. Oscar Freire lance le sprint aux 200 mètres et va remporter facilement ce 100e Milan San Remo.
1 Oscar Freire (Rabobank)
2 Alan Davis (Discovery Channel)
3 Tom Boonen (Quick-Step Innergetic)
13 Martin Elmiger (Ag2r Prévoyance)