Etap 19 – 30.05: Legnano-Presolana/Monte Pora, 228 km Wyniki NazwiskoKrajDrużynaCzas1Wasil KiryjenkaTinkoff Credit Systems6 h 37' 32"2Danilo Di LucaLPR Brakes-Ballan+ 4' 36" 3Aleksandr JefimkinQuick Step+ 4' 43" Klasyfikacja generalna po etapie NazwiskoKrajDrużynaCzas1Alberto ContadorTeam Astana82 h 29' 10"2Riccardo RiccòSaunier Duval-Scott+ 4"3Danilo Di LucaLPR Brakes-Ballan+ 21"
Etap 20 – 31.05: Rovetta-Tirano, 224 km Wyniki NazwiskoKrajDrużynaCzas1Emanuele SellaCSF Group-Navigare6 h 52' 45"2Gilberto SimoniDiquigiovanni-Androni+ 1' 04"3Joaquim RodríguezCaisse d’Épargne+ 1' 22"Klasyfikacja generalna po etapie NazwiskoKrajDrużynaCzas1Alberto ContadorTeam Astana89 h 23' 25"2Riccardo RiccòSaunier Duval-Scott+ 4"3Marzio BruseghinLampre+ 2' 00"
Etap 21 – 01.06: Cesano Maderno-Mediolan, 23,5 km (ITT) Wyniki NazwiskoKrajDrużynaCzas1Marco PinottiTeam High Road32' 45"2Tony MartinTeam High Road+ 7"3Michaił IgnatjewTinkoff Credit Systems+ 10"Klasyfikacja generalna po etapie NazwiskoKrajDrużynaCzas1Alberto ContadorTeam Astana89 h 56' 49"2Riccardo RiccoSaunier Duval-Scott+ 1' 57"3Marzio BruseghinLampre+ 2' 54"