Brazil “lost a great opportunity” to improve public services when it won the right to host the 2014 football World Cup, Rio de Janeiro’s mayor says.
Eduardo Paes told the BBC Brazil should have seized the occasion to invest in healthcare, education and transport.
He spoke after another day of protests against corruption and the high cost of preparations for the World Cup.
In the north-eastern city of Fortaleza, police fired tear gas to disperse protesters ahead of a football match.
Nearly 90 people were arrested for rioting outside the stadium in Fortaleza, ahead of the game between Spain and Italy at the Confederations Cup.
Several demonstrators and police officers were injured.
The wave of protests began nearly a month ago in the city Sao Paulo after bus fares were increased by 10%.
The rises in Sao Paulo and many other Brazilian cities were revoked after two weeks of protests.
By then, the demonstrations had turned into a nationwide movement for better education, healthcare and transport.
“Brazil has lost a great opportunity with the World Cup. Fifa asked for stadiums and Brazil has only delivered stadiums,” Mayor Paes told BBC Newsnight’s Tim Whewell in Rio.
“We should have used the opportunity to deliver good services too.”
He said the protests were not about the economy, which has slowed down in the last two years: “We have almost no unemployment. The protests are much more connected to the quality of services in Brazil.”
The Brazilian authorities have to find a way of connecting to the people, Mr Paes said.
“People want more transparency, they want more openness and that is what we are going to do.”
Demonstrators are angry at the high cost of preparations for the World Cup and the 2016 Rio de Janeiro Olympics.
The Confederations Cup is part of the preparations.
It is organised by the world’s football body, Fifa, gathering the champions of each continent, the hosts and the world champions.
On Thursday, Spain won the semi-final match against Italy on penalties and will now play Brazil in the final on Sunday in Rio de Janeiro.
On Thursday, protests were staged in Rio de Janeiro, Porto Alegre and other cities.
But the largest demonstration is expected to go ahead in Rio, where protesters are planning to march towards the Maracana stadium before the final.
Fifa says the World Cup will go ahead in Brazil as planned.
“The first game will happen in Sao Paulo, the final will be in Rio. There is no plan B,” said Fifa general-secretary Jeremy Valcke.