A car was damaged by 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 in Brazil.
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.
"We are against the millions and millions of dollars being spent for the Cup," university student Leonardo Pelegrini dos Santos told the Associated Press news agency.
"It is money that should be invested in better health and education services and better transportation and housing."
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 Brazilian President Dilma Rousseff to propose a referendum on political reform.
She also pledged to invest 50 billion reais ($25bn, Â£16bn) in public transport, one of the protesters' main grievances.
Police in the Brazilian city of Sao Paulo say they have detained 128 people during clashes that followed a demonstration against this year's football World Cup.