The race for mayor of Sao Paulo, Latin America’s biggest city, will be decided in an Oct. 27 runoff between the center-right incumbent and a leftist lawmaker after they won the top two spots in closely divided voting on Sunday.
Despite polls that suggested he lost momentum late in the campaign, Mayor Ricardo Nunes led the first round with 29.5% of the votes in the city of 11.5 million people. In the runoff, he will face federal legislator Guilherme Boulos, who got 29%, official results showed.
To avoid a runoff, a candidate would have needed to win more than 50% of the vote.
Brazilians on Sunday voted for mayors and city councilors in more than 5,500 municipal elections, shaping the country’s political landscape ahead of a 2026 presidential race.
The Sao Paulo mayoral race dominated the spotlight after polls showed three candidates virtually tied on the eve of the election. Far-right political novice Pablo Marçal rose from obscurity and got 28.1% of votes.
While not enough to make the runoff, the anti-establishment digital influencer surged in the polls with vitriolic attacks on adversaries and divided the conservative vote despite a campaign with little funding and no TV ads.
He headlined the news for weeks after a furious fifth-placed candidate hit him with a chair during a debate.
“Watching the debates, there were often things that I didn’t expect to happen, like the chair-throwing or the name-calling. I found it a little disrespectful to the public,” voter Joao Victor Caputo said after casting his vote in Sao Paulo.
Nunes had the support of former hard-right President Jair Bolsonaro, while Boulos was backed by President Luiz Inacio Lula da Silva. But both national figures were largely absent from the campaign.
Candidates close to Lula faced trouble overall as the president’s popularity has slipped, but got strong results in the country’s two largest cities, Sao Paulo and Rio de Janeiro. Conservatives performed strongly in several major towns.
“As long as democracy exists, the people’s right to choose will exist, for better or for worse,” Lula said after casting his vote. “What we cannot allow to happen is that people vote uninformed.”
Lula largely avoided taking to the campaign trail for mayoral candidates, although their success would boost his chances in 2026, when he is expected to run for re-election.
Overall, center-right parties fared best along with Bolsonaro’s Liberal Party, which attracted support even though the former president was banned from seeking office until 2030 for unfounded attacks on Brazil’s voting system.
“The anti-establishment views of the right have become the trend,” said political risk expert Creomar de Souza, noting that Lula likely kept his campaigning to a minimum to avoid being associated with losing candidates.
While Bolsonaro endorsed Nunes, the Sao Paulo race posed complicated dynamics for him. The former president appeared to distance himself from Nunes as Marçal grew in the polls.
Bolsonaro voted in Rio de Janeiro, where he began his political career. But his favored mayoral candidate Alexandre Ramagem, who led Brazil’s spy agency under Bolsonaro, suffered a major defeat.
Rio Mayor Eduardo Paes, a Lula ally, won re-election in a landslide, securing 60% of the votes against Ramagem’s 31%.
“We had support from people from right to left, progressives and conservatives. This is an example for Brazil,” said centrist Paes, who will take office for his fourth non-consecutive term in January.
To win outright in the first round, candidates for mayor of cities of 200,000 voters or more had to gain more than 50% of valid votes.