Sao Paulo police say they have detained 128 people during clashes that followed a demonstration against this year’s football World Cup in Brazil.
A car was set on fire. Shops, banks and a police vehicle were also damaged.
The violence forced the authorities to cancel some of the festivities planned for the city’s 460th anniversary.
Earlier, some 2,500 people took to the street to complain about the costs of staging the World Cup.
They marched through central Sao Paulo waving flags, carrying banners and chanting: “There will be no Cup.”
Other Brazilians protested on Twitter, saying “FIFA go home”, in reference to football’s world governing body. There were similar small protests in Rio de Janeiro and other cities.
Saturday’s peaceful protest was marred by sporadic acts of vandalism which turned into clashes with the police.
Some demonstrators attacked an empty police car and tried to overturn it, while others torched a small car. They also burned tires and targeted banks and others businesses.
The Sao Paulo state Governor Geraldo Alckmin condemned the violence.
Fifteen people were also reported to have been detained at a protest near the World Cup stadium in Natal, a city in north-eastern Brazil.
Last year, more than a million people took to the street in dozens of Brazilian cities over poor public services, corruption and the high cost of the World Cup.
The wave of protests prompted Brazil’s President Dilma Rousseff to propose a referendum on political reform.
Dilma Rousseff also pledged to invest 50 billion reais ($25 billion) in public transport, one of the protesters’ main grievances.
[youtube GUEBfU2zukI 650]