Die zweite Etappe der Tour de France 2004 verlief größtenteils in Belgien mit einem Abstecher nach Frankreich. Start war in Charleroi und das Ziel befand sich nach 197 km im belgischen Namur. Wie die erste Etappe war die zweite eine Flachetappe mit drei Zwischensprints und zwei Bergen der 4. Kategorie. Die Etappe verlief wegen des starken Rückenwinds auf dem schnellsten errechneten Schnitt. Bei der ersten Bergwertung attackierte der Träger des Gepunkteten Trikots, Paolo Bettini aus Italien. Er konnte sich den ersten Bergpreis sichern. Nach dieser Bergwertung konnten sich sechs Fahrer absetzen, darunter der Deutsche Lang aus dem Team Gerolsteiner und der Däne Piil aus dem Team CSC.
Nach wenigen Kilometern versuchten drei Fahrer, darunter der Rabobank-Fahrer Karsten Kroon Anschluss zu finden. Sebastian Lang, der zu der ersten Spitzengruppe gehörte, fuhr zeitweise im virtuellen Gelben Trikot, da er nur 31 Sekunden hinter dem Gesamtführenden Fabian Cancellara lag. Temporär lag der Vorsprung bei maximal 4:50 Minuten, sank jedoch kontinuierlich. Die Zwischensprints waren fast bedeutungslos, da die Kontrahenten um das Gelbe Trikot und das Grüne Trikot hinten im Feld beisammen waren. Zirka 40 Kilometer vor dem Ziel gab es einen Sturz, dem Mario Cipollinis Anfahrer Gian Matteo Fagnini zum Opfer fiel. Er musste das Rennen beenden.
22 Kilometer vor dem Ziel kam es schließlich zum Zusammenschluss der Spitzengruppe mit dem Feld. Danach gab es noch eine Attacke eines Alessio-Fahrers, die jedoch schnell vereitelt wurde. Daraufhin erhöhte das Feld das Tempo, so dass es zu keinem Ausreißversuch mehr kommt. Im Massensprint konnte sich der Australier Robbie McEwen vor Thor Hushovd und Nazon durchsetzen. Somit konnte sich der Norweger das Gelbe Trikot von Fabian Cancellara überstreifen. Die Favoriten Alessandro Petacchi und Zabel waren wie gestern wieder chancenlos. Überschattet wurde der Sprint durch einen Sturz von zwei Fahrern auf den letzten 500 Metern.