Inizia la stagione 2012 in gennaio al Tour de San Luis, dove vince la sesta tappa regolando in volata Juan José Haedo e Andrea Guardini. Nella prima gara in Italia, il Gran Premio Costa degli Etruschi, il cui percorso viene modificato e accorciato a causa di vento e gelo, bissa il successo dell'anno precedente battendo Modolo e Baggio; pochi giorni dopo si aggiudica anche le due tappe e la classifica finale del Giro della Provincia di Reggio Calabria. In marzo partecipa alla Milano-Sanremo concludendola oltre il centesimo posto, mentre a fine mese vince la prima semitappa della Settimana Internazionale Coppi e Bartali. Ai successivi campionati mondiali su pista di Melbourne, dove ambisce alla vittoria nell'omnium, cade procurandosi una microfrattura che lo costringe al ritiro e gli preclude la successiva partecipazione al Giro d'Italia; riesce comunque ad ottenere la qualificazione ai Giochi olimpici di Londra, risultando però l'unico rappresentante italiano per il ciclismo su pista. Rientrato alle corse, in luglio partecipa al Giro di Polonia arrivando secondo nella seconda e nella quinta tappa battuto, in entrambi i casi, allo sprint dal britannico Ben Swift; su pista vince invece la Tre Giorni di Pordenone in coppia con Angelo Ciccone e la Tre Sere di Bassano del Grappa con lo svizzero Franco Marvulli.