Nato a Prato il 16 aprile 1924, residente a Prato, ha conseguito la licenza elementare. Iscritto al Partito Comunista Italiano nel 1945, è stato segretario della Camera confederale del lavoro di Prato e responsabile del sindacato provinciale tessili a Prato. Ha avuto incarichi dirigenziali nel movimento cooperativo pratese dal 1961 al 1963. Eletto consigliere comunale a Prato nel 1951, ha successivamente fatto parte della Giunta comunale dal 1964 al 1975.
Alle consultazioni regionali del 15 - 16 giugno 1975 è stato eletto nella circoscrizione di Firenze, nella lista del Partito Comunista Italiano ed ha ottenuto 8.354 preferenze. Nel corso della legislatura è stato prima membro e poi presidente della commissione Urbanistica.
Alle consultazioni regionali dell'8 - 9 giugno 1980 è stato rieletto nella circoscrizione di Firenze, nella lista del Partito Comunista Italiano con 6.595 preferenze. Nel corso della legislatura è stato membro della commissione Urbanistica e della commissione di Controllo. Ha aderito al gruppo PCI.