[2] Mientras estaba en la cantera juventina, jugó como segundo delantero, hasta que se cambió al centro del campo a la edad de dieciséis años.
Durante las temporadas 2004-05 y 2005-06 fue convocado por primera vez por Fabio Capello pero se mantuvo en el banquillo de suplentes.
Su debut en la Serie B se produjo el 28 de octubre contra el Frosinone Calcio como suplente de David Trezeguet y realizó su primer partido como titular en el siguiente encuentro contra el Brescia Calcio.
[3] A pesar de que no anotó ningún gol, dio dos asistencias vitales y fue titular habitual para el club toscano.
Su temporada se vio interrumpida por una serie de lesiones menores en abril, que dio lugar a ser marginado por casi un mes.
Regresó al once inicial en la penúltima jornada, marcando un gol y dando asistencia.
En el mes de septiembre disputó su partido número 100 con la camiseta bianconera en la victoria por 4-0 sobre el Udinese Calcio.
[8] Comenzó la temporada 2011-12 con un gol en el partido inaugural ante el Parma F. C., y anotó un doblete en la victoria por 2-0 ante el A. C.
[9] Para la temporada 2018-19 salió rumbo a San Petersburgo para jugar con la camiseta del Zenit.
Sólo disputó los diez primeros minutos del partido ya que al rematar hacia el arco sufrió una lesión y tuvo que ser sustituido por Robert Acquafresca.
Llegó el último partido de la fase de grupos y la azzurra se encontraba en peligro ya que si España y Croacia empataban a 2, quedarían eliminados.