Spain aims to invest 30 million euros ($35.1 million) in an emergency plan to manage its new status as the main destination for seaborne migration from Africa, the government said.
During two months in office, Socialist Prime Minister Pedro Sanchez has asserted his liberal credentials by offering to receive hundreds of migrants rescued in the Mediterranean, as the European Union struggles to agree on how to handle them.
The money will go towards covering the initial costs of managing arrivals on the beaches, from staff to hand out blankets and food to managing the process of identification and determining whether people qualify for asylum, a spokeswoman for the Prime Minister's office said.
On Monday, Madrid opened a temporary reception center in the Andalusia region which is separated from Africa by the Strait of Gibraltar, just 14 km (nine miles) at its narrowest point.
Visiting the center, which has space for up to 700 people to stay around 4-5 days each once their identities have been processed by police, Labour Minister Magdalena Valerio said immigration was an "unstoppable phenomenon".
"Migration policy needs to be shared, all European countries need to get involved," she added.
Sanchez's office said the previous government left Spain unprepared for the influx, which has totaled almost 24,000 so far this year, according to the United Nations refugee agency, almost as many as made the trip throughout all of 2017.
Meanwhile, Italy, long a regional flashpoint for boat migration, has seen almost 18,300 arrivals, and its anti-system government has barred migrant rescue ships from docking.
Sanchez's political opponents including the hard-line new leader of the conservative People's Party (PP) have warned against creating a "pull factor" for migrants seeking a better life in Europe.
"Rather than a pull factor, we could talk about a lack of foresight in the last years of the previous government, which did nothing about increasing arrivals, and obliged this government to take urgent steps," Sanchez's office said in a statement.
($1 = 0.8552 euros)