Nel corso della sua carriera, ha ottenuto, tra gli altri premi, tre David di Donatello per il miglior attore protagonista per Mio fratello è figlio unico, La nostra vita e Il giovane favoloso. Per La nostra vita ha vinto anche il Nastro d'argento al migliore attore protagonista ed il Prix d'interprétation masculine al Festival di Cannes 2010. Nel 2020 ha ricevuto l'Orso d'argento per il miglior attore al Festival di Berlino per l'interpretazione del pittore Antonio Ligabue nel film Volevo nascondermi.