Nasce a San Giovanni in Persiceto (Bologna) il 29 settembre 1933 in una famiglia operaia. Nel 1937 si trasferisce a Borgo Panigale (Bologna) e, dopo aver frequentato la Scuola di avviamento professionale, comincia a lavorare come operaia stagionale in fabbrica, dove svolge il suo apprendistato politico con le prime lotte sindacali per la parità di salario. Nel 1948 si iscrive al Pci e nel 1949 è eletta nella commissione interna della fabbrica di saponi dove è occupata. Nel 1950 frequenta la Scuola sindacale di Gallo Bolognese, subito dopo entra a far parte del sindacato dei lavoratori chimici e vi rimane per cinque anni; nel 1955 entra nella segreteria e nella commissione giovanile della CdL di Bologna e nello stesso anno assume la direzione della commissione femminile. Dal 1955 al 1960 è componente della segreteria della Federbraccianti provinciale, dove segue le lotte per la parità salariale e l’abolizione del Coefficiente Serpieri. Si sposa e nel 1956 nasce il primo figlio. Nel 1960 è eletta segretaria generale dei lavoratori chimici e petrolieri della provincia di Bologna e tra il 1962 e il 1963, con la nascita del secondo figlio, passa all’ufficio studi della CdL.
Nel 1963 lascia il sindacato per dedicarsi al lavoro di partito e sino al 1965 è responsabile femminile della federazione. Nel 1960 è eletta consigliera comunale, al secondo mandato del 1964 è assessora al Lavoro, servizi anagrafici ed elettorali nella giunta Dozza, unica donna e dopo cinque mesi le vengono affidati ad interim anche Igiene e Sanità e Assistenza. Nel 1966 con la giunta Fanti è nominata assessora all’Assistenza e ai Servizi sociali e durante il mandato realizza un vasto piano di riforme, tra le quali si enumerano solo gli interventi contro l’istituzionalizzazione di minori, anziani e disabili e il piano per gli asili nido. Il progetto per l’apertura di una rete di asili nido, ispirato alle esperienze delle socialdemocrazie scandinave, è elaborato durante un viaggio di studio in Svezia e anticipa la legge nazionale ancora in discussione in Parlamento; il piano è avviato contestualmente a quello di decentramento territoriale cittadino e la prima realizzazione è l’asilo Patini, inaugurato nel 1969.
Lascia il consiglio comunale nel 1969 e vi ritornerà ancora una volta nel 1980.
Con l’elezione alla Camera nel 1968 inaugura un lungo periodo di lavoro parlamentare poiché sarà confermata sino al 1983, con un impegno costante sui temi della riforma dell’assistenza, dei diritti delle donne, dei minori e dei disabili.
Dal 1970 fa parte degli organismi dirigenti nazionali del Pci; a conclusione del mandato parlamentare, negli anni Novanta, presiede l’associazione culturale di studi e ricerche Europa 2000. Dopo lo scioglimento del Pci si iscrive al Pds, ai Ds e infine al Pd, partito che lascia nel maggio 2015 per dissenso verso la riforma della Buona scuola varata dal governo Renzi.