E’ nato a Prato il 7 gennaio 1952, e vi risiede. Diplomato, ha militato nel movimento studentesco ed è entrato da giovane nel Partito comunista, quindi nel Pds e successivamente nei Ds. E’ stato assessore all’urbanistica e vicesindaco a Prato, nella Giunta guidata da Claudio Martini. Tra gli artefici della nascita dell’Ulivo nella sua città, è diventato Sindaco nel 1995 ed ha ricoperto la carica di primo cittadino fino al 2004. E’ stato componente del Consiglio di amministrazione di Firenze Fiera. E' membro della direzione regionale e provinciale del PD.
Alle consultazioni elettorali del 3 e 4 aprile 2005 è stato eletto consigliere regionale nella circoscrizione di Prato nella lista Uniti nell’Ulivo. E' stato membro della Terza Commissione "Attività produttive" e della Commissione speciale per gli adempimenti statutari e per il nuovo Regolamento interno del Consiglio regionale. E' stato presidente della Commissione speciale per la normativa elettorale.
Ha aderito al gruppo Democratici di Sinistra – L’Ulivo che, in data 24 luglio 2007, si è unificato con il gruppo La Margherita - L'Ulivo, con la denominazione Per il Partito Democratico - L'Ulivo divenendo, dal 7 gennaio 2008, gruppo Partito Democratico. E' stato vicepresidente del gruppo.
Alle consultazioni regionali del 28 e 29 marzo 2010 è stato eletto nella circoscrizione di Prato nella lista del PD-Riformisti toscani. E' presidente della Settima Commissione "Mobilità e infrastrutture".
Aderisce al gruppo Partito Democratico.