Alternò l'attività su strada e su pista. Da dilettante ottenne tre titoli italiani: nell'inseguimento a squadre e nell'americana nel 1983, e nell'inseguimento a squadre nel 1984. Passato professionista nel 1985, ottenne nel primo anno su strada una tappa alla Settimana Siciliana e due tappe al Giro d'Italia, su pista il titolo italiano e il bronzo mondiale nella corsa a punti, risultato che ripeté nel 1986 a Colorado Springs. Nel 1988 vinse una tappa al Giro di Puglia, mentre nel 1989 vinse una tappa alla Settimana Siciliana, il prologo della Tirreno-Adriatico e una tappa alla Vuelta a España, oltre al titolo italiano nella corsa a punti. Il 1990 lo vide imporsi in due tappe al Giro d'Italia. Attualmente ricopre il ruolo di ViceDirettore di Corsa RCS Sport in ammiraglia nelle gare di ciclismo professionistico tra cui la Milano-Saremo, il Giro di Lombardia e il Giro d'Italia