Cresciuto nel Torino, vive le prime esperienze da professionista in prestito a Varese e Siena, tornando al Torino per giocare un anno in Serie A e due in Serie B. In seguito si trasferisce alla Juventus, giocando un anno in Serie A e Champions League con la vittoria del campionato non valida per i fatti di Calciopoli e la successiva stagione in cadetteria con la risalita. Ceduto alla Fiorentina nel 2007, dopo mezza stagione passa al Palermo con cui gioca titolare in Europa League. In questi anni conquista la maglia della Nazionale con la quale partecipa al Campionato europeo 2012, in cui l'Italia perde la finale contro la Spagna. Nella stessa estate si trasferisce alla Roma. Il 12 agosto 2015 annuncia il ritiro, dopo aver totalizzato complessivamente 221 presenze e 4 reti in Serie A e 130 presenze e 3 reti in Serie B.