Spaniards are voting in regional and municipal elections that could challenge the grip of the country's two main parties.
Seats in all of the local councils are at stake, as well as places in 13 of the 17 regional parliaments.
Opinion polls suggest that the ruling party and its main rival could both be punished by voters.
Sunday's vote is seen as an important barometer of opinion ahead of national elections later this year.
"There is no doubt that a majority of Spaniards want change. What they want now are governments that make pacts and engage in dialogue," Jose Pablo Ferrandiz, from pollster Metroscopia, told the AFP news agency.
Disenchantment about the main parties weighed heavily among voters - one man described them as the "usual parties always doing the same thing".
Casting his ballot, Spanish Prime Minister Mariano Rajoy urged all Spaniards to vote for "whoever they see fit".
Spain's economic crisis and a series of corruption scandals have damaged the reputations of both Mr Rajoy's conservative Popular Party (PP) and the leading opposition, the Socialists (PSOE) party.
Analysts say that the PP could lose its majority in almost all of the 10 regions it currently controls.
The vote could open the door for newer parties such as the centre-right Ciudadanos and the radical anti-austerity party Podemos.
Podemos - meaning "We can" - came third in Andalusia's regional election in March.
The PSOE, who have governed Andalusia for more than 30 years, were left short of a majority.
"Tonight our city halls and regions will begin to change and Spain will also begin to change," Podemos leader Pablo Iglesias said while voting in Madrid.
Ciudadanos (meaning "Citizens") has a pro-business agenda and is seen as a threat to the PP.
"We have to vote and change things," said Ciudadanos leader Albert Rivera.
"The power is in our hands, in the hands of citizens. So I ask Spaniards to take part so that we won't regret it tomorrow and so that those we don't like are not allowed to stay in power."
Final results are due by midnight local time (22:00 GMT).