Dopo le esperienze in Sicilia è approdato al Perugia con cui si è affermato. In seguito si è trasferito all'Inter, militandovi per un decennio nel quale ha vinto 5 campionati italiani consecutivi (dal 2006 al 2010), 4 Coppe Italia (2005, 2006, 2010 e 2011), 4 Supercoppe italiane (2005, 2006, 2008 e 2010), una Champions League (2010) e un Mondiale per club FIFA (2010). Conclusa l'esperienza italiana, si è trasferito nel campionato indiano cominciandovi — dopo il ritiro dai campi — la carriera da allenatore.