Quando passa dilettante nel 1984 con il G.S. Stella Artois di Bologna, ha al suo attivo 28 successi tra cui una tappa del Giro della Bassa Lunigiana. Dal 1985 al 1988 difende i colori del G.S. Giacobazzi inserendosi ogni anno al vertice delle classifiche nazionali di rendimento.
Sono più di trenta le vittorie e tra queste il G.P. Città di Alassio, la Milano-Reggio, la prova di selezione per il Giro d'Italia, l'internazionale di Porto San Giorgio. Nella sua ultima stagione dilettantistica (1988) gareggia con la Giacobazzi Stilgres conquistando 14 vittorie (tra cui la Milano-Mantova).
Nel 1989 passa al professionismo con la Selca-Conti e vince la seconda tappa del Giro di Calabria. Nel 1990 indossa passa alla squadra Italbonifica-Navigare. Non vince alcuna competizione, ma partecipa al Giro di Sicilia, Giro dell'Etna, Trofeo Pantalica, Giro della Provincia di Reggio Calabria, Crono Staffetta d'Abruzzo, Giro di Calabria prima di infortunarsi a causa di una caduta. Sul finire della stagione ritorna alle gare ed arriva secondo al Giro di Romagna.
Nel 1991 si piazza due volte secondo in tappe della Settimana Ciclistica Bergamasca, conquista la maglia rossa "San Siro" come leader dei traguardi volanti e partecipa al Giro d'Italia in cui vince due classifiche parziali: quella dei traguardi volanti "Tellure Rota" (leader dalla seconda tappa) e quella dei traguardi "Concessionarie Fiat". Partecipa poi al Giro di Puglia vincendo la prima tappa e restandone leader fino alla conclusione. Nel 1993 vince in volata il Giro della Provincia di Reggio Calabria. Alla Settimana Ciclistica Bergamasca vince la quarta e la sesta tappa e si piazza secondo nella decima. Partecipa, poi, alla Vuelta di Spagna. Al Giro d'Italia conquista la tappa romagnola da Senigallia a Dozza. Partecipa anche al Giro di Puglia e al campionato italiano; vince la 4ª tappa del 50º Giro di Polonia; conquista la cronometro a squadre organizzata dall'A.S. Solarolese.
Nel 1994 passa alla squadra ZG Mobili-Selle Italia. Vince la terza tappa del Classico de Bogotà, due tappe al Classico RCN, due tappe alla Settimana Ciclistica Bergamasca, una tappa al Giro delle Valli Minerarie. Nel 1995 vince la terza tappa del Classico de Bogotà, due tappe al Giro di Calabria, una tappa del Giro del Lussemburgo e il Gran Premio Pino Cerami; conquista anche il Ciclocross di Savignano.