Przedostatni etap, choć bardzo trudny, z kilkoma górskimi premiami, nie przyniósł decydującego rozstrzygnięcia w walce o końcowe zwycięstwo. Lider - Contador i jego najgroźniejszy rywal Włoch Riccardo Ricco przyjechali na metę razem, półtorej minuty po Selli i przed niedzielną jazdą na czas (28,5 km) dzielą ich w klasyfikacji zaledwie cztery sekundy. Duże straty poniósł natomiast Danilo di Luca, tracąc trzecie miejsce i szansę walki o różową koszulkę. Di Luca stracił kontakt z czołówką na podjeździe na najtrudniejszą chyba w sobotę górską premię - przełęcz Mortirolo, gdzie trwała zażarta walka w gronie faworytów. Ricco kilkakrotnie próbował "zgubić" na podjeździe Contadora, ale lider kontrolował sytuację i obronił różową koszulkę. "Robiłem co było w mojej mocy - powiedział po etapie Riccardo Ricco. - Emanuele Sella miał rację mówiąc, że nie mam tak silnego zespołu, aby skutecznie zaatakować lidera w górach. W czasówce faworytem jest Contador, ale ja będę walczył do końca". W klasyfikacji etapu Emanuele Sella, który samotnie zaatakował na ostatnim podjeździe, ok. 30 km przed metą, wyprzedził o minutę również samotnie kontratakującego Gilberto Simoniego o 1.20 i Hiszpana Joaquina Rodrigueza. Na trasie 20. etapu wycofał się z wyścigu Niemiec Andreas Kloeden z ekipy Astana. Wyniki 20. etapu (Rovetta - Tirano, 232 km) 1. Emanuele Sella (Włochy/CSF Navigare) 6:52.45 2. Gilberto Simoni (Włochy/Saunier Duval) strata 1.04 3. Joaquin Rodriguez (Hiszpania/Caisse d'Epargne) 1.22 4. Riccardo Ricco (Włochy/Saunier Duval) 1.30 5. Alberto Contador (Hiszpania/Astana) 1.30 6. Antonio Colom (Hiszpania/Astana) 1.30 7. Fortunato Baliani (Włochy/CSF Navigare ) 1.30 8. Marzio Bruseghin (Włochy/Lampre) 1.30 9. Tadej Valjavec (Słowenia/AG2R) 1.30 10. Franco Pellizotti (Włochy/Liquigas) 1.30 11. Denis Mienszow (Rosja/Rabobank) 1.30 12. Domenico Pozzovivo (Włochy/CSF Navigare) 1.30 13. Juergen Van den Broeck (Belgia/Silence-Lotto) 1.30 14. Władimir Karpiec (Rosja/Caisse d'Epargne) 5.27 15. Danilo Di Luca (Włochy/LPR) 5.27 16. Vincenzo Nibali (Włochy/Liquigas) 10.53 .. 36. Sylwester Szmyd (Polska/Lampre) 15.06 Klasyfikacja generalna: 1. Alberto Contador (Hiszpania/Astana) 89:23.25 2. Riccardo Ricco (Włochy/Saunier Duval) strata 4 s 3. Marzio Bruseghin (Włochy/Lampre) 2.00 4. Franco Pellizotti (Włochy/Liquigas) 2.05 5. Emanuele Sella (Włochy/CSF Navigare) 2.35 6. Denis Mienszow (Rosja/Rabobank) 2.47 7. Danilo di Luca (Włochy/LPR) 4.18 8. Jurgen Van den Broeck (Belgia/Silence Lotto) 4.26 9. Domenico Pozzovivo (Włochy/CSF Navigare) 5.25 10. Gilberto Simoni (Włochy/Saunier Duval) 6.40 .. 22. Sylwester Szmyd (Polska/Lampre) 50.38