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. Ha disputato complessivamente 56 incontri in Serie A con le maglie di (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".