The proposal was passed at a cabinet meeting despite strong opposition from the Roman Catholic Church, the conservative opposition Popular Party and even many supporters of Prime Minister Jose Luis Rodriguez Zapatero's Socialist Party.
The measure now will to go to parliament for approval, Deputy Prime Minister Maria Teresa Fernandez de la Vega told a news conference.
Under the proposed reforms, abortions would be allowed for women of 16 and over on demand up to the 14th week of pregnancy, and up to 22 weeks if there is a risk to the mother's health or if the foetus is deformed.
Women can also undergo the procedure after 22 weeks if the foetus has a serious or incurable illness.
"We want to offer minors as much protection as possible and the most respect for their basic rights," said de la Vega.