Figlio di un operaio, comincia la carriera alla Vis Terni, passa prima alla Ternana e quindi in prestito al Fabriano; in procinto di passare alla Juventus, l'ingaggio sfuma per problemi creati dalla Vis Terni; passa quindi grazie all'interessamento dell'allenatore Sperone alla Lazio, con cui vince i campionati Ragazzi e poi Riserve. Ceduto alla Triestina, durante questo periodo viene convocato dalla Nazionale Sperimentale[2]. Ha disputato complessivamente 56 incontri in Serie A con le maglie di Lazio (6 presenze dal 1954 al 1956 come riserva di Zibetti prima e di Lovati poi) e Triestina, di cui ha difeso la porta nelle stagioni 1956-1957 e 1958-1959 (in questo caso alternandosi fra i pali con Roberto Rumich), le ultime finora disputate in massima serie dagli alabardati.
Ha inoltre totalizzato 97 presenze in Serie B con Triestina e Sambenedettese.(Nella Sambenedettese è suo fratello Giorgio, non lui).
Nel campionato di serie B 1957/58 ha segnato 2 reti su calcio di rigore.