Nato a Gioia del Colle il 20 ottobre 1976, cresce nelle giovanili del Bari. 

Viene ceduto in prestito alla Pistoiese, nella stagione 1996/97, e nel Prato (1997/98) dove gioca costantemente. La stagione successiva passa al Chievo, in serie B, poi alla Reggiana e al Modena, per tornare nuovamente a vestire la maglia dei clivensi in serie A, nelle stagioni 2001/02 e 2002/03, con due presenze anche in Coppa Uefa.

Nella stagione 2003/04 diventa un calciatore della Juventus, che lo cederĂ  in prestito al Bologna, da gennaio a giugno 2005, e al Siena nella stagione 2005/06.

Torna alla Juve, nella storica e unica stagione in B dei bianconeri, e gioca a Torino fino a gennaio 2011, segnando 10 reti, di cui una in Champions League, e conquistando una Coppa Italia. Viene poi ceduto al Milan con cui vince lo scudetto.

Dal 2011 al 2014 porta la sua esperienza a Catania, dove termina la carriera con un totale di 442 presenze e 29 gol