Cresciuto nelle giovanili della Lucchese Libertas, esordì in Serie A il 12 settembre 1937 nel match interno contro l'Ambrosiana-Inter (3-3). Nel 1939 passò al Napoli, con la cui maglia realizzò 18 gol in 49 partite prima di trasferirsi al Milan, tra le cui file disputò tre campionati realizzando 20 gol in 88 partite. Nel 1946 tornò alla Lucchese, dove sarebbe rimasto fino al 1950, prima di chiudere la carriera tra le file di Lecce e Arezzo. In massima serie collezionò complessivamente 269 presenze e 53 reti.
Da allenatore vinse il girone A della Serie D 1963-1964 con l'Entella[1] subentrando a Pietro Pastorino nel corso della stagione.