Nato il 12 settembre 1939 a Milano, ove risiede è laureato in giurisprudenza.

Consigliere Comunale di Milano dal novembre 1964 al luglio 1965. Dal luglio 1965 all'aprile 1970 fa parte della Commissione amministratrice dell'Azienda trasporti municipali di Milano e del Consiglio di amministrazione della Cassa speciale di previdenza per i dipendenti della ATM.

Dal 1965 al 1970 è Segretario cittadino del PRI di Milano. Eletto Consigliere Comunale di Milano il 7 giugno 1970, fino al febbraio 1971 è Assessore alle Aziende municipalizzate ed alle partecipazioni comunali; successivamente, Capogruppo del PRI al Consiglio Comunale sino al 1975. Rieletto Consigliere Comunale di Milano nel 1985 e nel 1990. È stato Vicesindaco dall'agosto 1985 al dicembre 1986 e successivamente Capogruppo del PRI a Palazzo Marino.

E' eletto Deputato il 7 maggio 1972, nella Circoscrizione di Milano - Pavia con 8.510 voti di preferenza, Segretario della Commissione Lavoro. Fa parte anche della Commissione Affari Costituzionali, della Commissione Giustizia e della Giunta per il regolamento. Nel dicembre del 1974 viene nominato Segretario del Gruppo Parlamentare.

E' rieletto Deputato il 20 giugno 1976, nella stessa Circoscrizione, con 14.251 voti di preferenza. Fa parte della Commissione Giustizia e della Giunta per le elezioni. Segretario del Gruppo Parlamentare, è relatore di maggioranza, insieme con Giovanni Berlinguer, della legge 194 sull'interruzione volontaria della gravidanza.

E' rieletto deputato nella stessa circoscrizione il 3 giugno 1979, con 10.065 voti di preferenza. Presidente della Commissione Lavoro. Responsabile dell'Ufficio Regioni ed Enti Locali del PRI, è uno dei tre componenti il comitato di reggenza della Segreteria del Partito Repubblicano nel periodo in cui Giovanni Spadolini ricopre la carica di Presidente del Consiglio.

E' rieletto Deputato il 26 giugno 1983, per la Circoscrizione Milano - Pavia con 17.199 voti di preferenza, per la Circoscrizione Brescia - Bergamo con 3.858 voti di preferenza.

Opta per la Circoscrizione Milano - Pavia. Fa parte della Commissione Giustizia. Nel settembre 1983 viene nominato Vice - Segretario nazionale del PRI.

E' rieletto Deputato per la quinta volta, il 14 giugno 1987, nella Circoscrizione Milano - Pavia con 17.818 voti di preferenza. E' confermato alla Commissione Giustizia, e componente della Commissione Affari Costituzionali e della Giunta del Regolamento.

Presidente del Gruppo Parlamentare Repubblicano.

E' rieletto Deputato nelle consultazioni politiche del 5 -6 aprile 1992, nella stessa Circoscrizione, con 13.964 voti di preferenza. Fa parte della commissione Affari Esteri della Commissione speciale per le Politiche Comunitarie, e della delegazione parlamentare italiana presso l'Assemblea dell'Atlantico del Nord e dell'Unione Inter - Parlamentare.

E' eletto al Senato il 13 maggio 2001, come rappresentante del PRI nella Casa delle Libertà nel collegio uninominale di Milano VI con 61.331 voti, pari al 43%. Iscritto al gruppo misto - componente PRI - fa parte della I Commissione Affari Costituzionali, della Presidenza del Consiglio degli Interni; della Giunta per gli Affari della Comunità Europea, e della delegazione italiana presso la conferenza parlamentare dell'Iniziativa Centro Europea (INCE).

Autore di diversi saggi sui problemi istituzionali e su quelli relativi all'ordinamento degli enti locali, ha pubblicato, tra l'altro, il libro "Quali Autonomie?".