Rappresenta l'Italia alle Olimpiadi degli scacchi del 2012 a Istanbul ottenendo il miglior punteggio individuale in prima scacchiera con 6,5 punti su 9. È giunto 1º-2º ex aequo con Carlsen al Final Chess Masters, tenutosi da settembre a ottobre a San Paolo (Brasile) e Bilbao (Spagna), perdendo però il mini-match lampo di spareggio su due partite con il norvegese, ma conducendo la classifica sempre in testa dal primo all'ultimo turno. Nel torneo è riuscito anche a sconfiggere, per la prima volta, lo stesso Carlsen e Aronyan, rispettivamente n. 1 e 2 del mondo. All'inizio di novembre, a Bucarest, ha partecipato al Torneo dei Re, piazzandosi al 3º posto e pattando tutte le partite. Dal 21 novembre al 4 dicembre 2012 a Tashkent, dove si è svolto il 2º torneo del Grand Prix FIDE, si è classificato 4º-6º ex aequo, mezzo punto dietro i tre vincitori.