The 87th Giro d'Italia is scheduled for May 9 - May 30, 2004 for a total distance of 3435 km. The stages are listed below. During stages 14 and 15, the route ventures into Istrian peninsula crossing through Croatia and Slovenia.

  • Prologue - Saturday, May 8: Prologue ITT, Genova, 7 km

  • Stage 1 - Sunday, May 9: Genova - Alba, 149 km
  • Stage 2 - Monday, May 10: Novi Ligure - Pontremoli, 183 km
  • Stage 3 - Tuesday,k May 11: Pontremoli - Corno Alle Scale, 190 km (12.8km ascent with grades averaging 5.2% and up to 14%)
  • Stage 4 - Wednesday, May 12: Porretta Terme - Civitella in Val Di Chiana, 187 km
  • Stage 5 - Thursday, May 13: Civitella in Val Di Chiana - Spoleto, 174 km
  • Stage 6 - Friday, May 14: Spoleto - Valmontone, 163 km
  • Stage 7 - Saturday, May 15: Frosinone - Montevergine Di Mercogliano, 211 km (mountain finish 17.1km ascent with grades averaging 5%)

  • Stage 8 - Sunday, May 16: Giffoni Valle Piana - Policoro, 234 km
  • Stage 9 - Monday, May 17: Policoro - Carovigno, 142 km
  • Rest Day - Tuesday, May 18
  • Stage 10 - Wednesday, May 19: Porto Sant'Elpidio - Ascoli Piceno, 145 km
  • Stage 11 - Thursday, May 20: Porto Sant-Elpidio - Cesena, 229 km
  • Stage 12 - Friday, May 21: Cesena - Treviso, 216 km
  • Stage 13 - Saturday, May 22: Trieste - Altopiano Carsico ITT, 52 km

  • Stage 14 - Sunday, May 23: Trieste - Pula, Croatia/Pola, 166 km
  • Stage 15 - Monday, May 24: Poreč/Parenzo - San Vendemiano, 229 km
  • Stage 16 - Tuesday, May 25: San Vendemiano - Falzes, 215 km
  • Rest Day - Wednesday, May 26
  • Stage 17 - Thursday, May 27: Brunico - Fondo Sarnonico, 158 km
  • Stage 18 - Friday, May 28: Cles Val di Non - Bormio, 120 km (9.9km ascent with grades averaging 7.5%)
  • Stage 19 - Saturday, May 29: Bormio - Presolana, 121 km

  • Stage 20 - Sunday, May 30: Clusone - Milano, 144 km