Interior Minister Alfredo Perez Rubalcaba was given the extra post of deputy prime minister, replacing Maria Teresa Fernandez de la Vega, the Financial Times reported.
Parliament passed Rodriguez Zapatero's austerity plan by only one vote in May.
Rubalcaba's ministry has been credited with success in the fight against the Basque terrorist group ETA. Security forces have arrested several ETA leaders in Spain and France and uncovered arms caches, raising hopes the group will abandon violence.
Zapatero ousted Foreign Minister Miguel Angel Moratinos, replacing him with Trinidad Jimenez Garcia-Herrera, who was health minister. Her post is going to Leire Pajin Iraola, a Socialist party leader.
The prime minister also appointed Valeriano Gomez Sanchez as minister of labor and immigration, replacing Celestino Corbacho. Rosa Aguilar Rivero became environment minister, and Ramon Jauregui Atondo was made minister in the prime minister's office.
Benedict Cumberbatch's dramatic reading of R. Kelly lyrics is just what you need
Jordana Brewster on Paul Walker: 'He was an enormous presence in my life'