La Milano-Sanremo 2004 è stata la novantacinquesima edizione dell'omonima corsa ciclistica. Si disputò il 20 marzo 2004 e fu vinta da Óscar Freire con il tempo di 7h11'23".
Alla partenza, alle 9.30 a Milano, erano presenti 194 corridori, di cui 184 portarono a termine il percorso.
La competizione si è svolta sul percorso tradizionale di questi ultimi anni, con il Passo del Turchino e il passaggio da Capo Mele, Capo Cervo, Capo Berta e la salita del Poggio a pochi chilometri dall'arrivo in via Roma.
Vicioso lo segue, ma entrambi vengono ripresi dal gruppo. Alessandro Petacchi viene lanciato dalla squadra ai 180 metri dal traguardo, ma Erik Zabel lo supera. Sul traguardo, Zabel alza le braccia pensando di avere vinto, ma viene superato da Óscar Freire, che vince per 11 millesimi di secondo.