Laureato in Giurisprudenza, dal 1980 è titolare di uno studio professionale a Varese. Dal 1979 al 1982 ha assunto la carica di Conciliatore di Induno Olona e dal 1983 al 1988 quella di Vice Pretore Onorario avanti la Pretura di Gavirate.

Esponente della Lega Nord, dal 1995 al 1999 è stato sindaco del comune di Induno Olona.

Nel 2000 è stato eletto consigliere regionale della Lombardia, venendo poi eletto presidente del Consiglio regionale, carica che manterrà fino al 2005.

Viene eletto sindaco di Varese al primo turno delle elezioni comunali del 28 e 29 maggio 2006, conquistando il 57,8 % dei voti. Riconfermato al ballottaggio del 29-30 maggio 2011 con il 53,89 % dei voti, resta in carica fino al 19 giugno 2016.

È stato presidente di ANCI Lombardia.

Nel 2018, dopo la rinuncia da parte di Roberto Maroni a ricandidarsi, diventa ufficialmente il candidato presidente del centrodestra alle elezioni regionali in Lombardia.