Dopo aver iniziato coi kart, nel 1998 passa al Campionato Italiano di Formula 3, terminando quarto. L'anno successivo chiude terzo. Nel 2001 partecipa all'Europeo di Formula 3000, vincendo a Zolder e chiudendo la stagione quarto. Nel 2005 il passaggio alle ruote coperte ed è terzo nel Tricolore superturismo. Dal 2002 al 2005 disputa l'Europeo Turismo. Sempre nel 2005 disputa alcune tappe del Mondiale col team DB Motorsport. Nel 2006 partecipa al WTCC per la N Technology con l'Alfa Romeo 156, ottenendo una vittoria.
Nel 2007 disputa la Le Mans Series nella classe GT1 con un Saleen S7R.
Campione italiano TCR 2018, 2019 e 2020.