Police clashed with protesters in Sao Paulo, Rio de Janeiro and several other host cities on Thursday as the World Cup got under way in Brazil.
Officers used tear gas on crowds in Sao Paulo hours before Brazil’s team beat Croatia 3-1 in the opening match.
Several people were also injured after scuffles broke out in Rio de Janeiro.
Protesters are angry at how much the government has spent on preparations for the World Cup and the Olympics, which Rio will host in 2016.
Earlier, striking airport workers in Rio de Janeiro blocked a road outside the airport, demanding a wage increase and a World Cup bonus.
The strike was to have lasted for 24 hours but union leaders called it off early for legal reasons.
Striking teachers also staged a rally in Rio city centre, further disrupting traffic.
BBC correspondents in Sao Paulo said police charged protesters with batons and riot shields and fired rubber bullets and tear gas near a metro station on the route to the Arena Corinthians.
Police moved in after the demonstrators, chanting “there won’t be a Cup”, tried to block the road.
US news channel CNN said Barbara Arvanitidis, one of its journalists, was among those injured in Sao Paulo, suffering a suspected broken arm.
A photographer working for the AP news agency was also injured after a stun grenade exploded near him.
The violence happened about 13km (8 miles) from the stadium where Brazil later beat Croatia, thanks to two goals from Neymar.
There were also clashes in Rio, the capital Brasilia, and two other World Cup host cities – Belo Horizonte and Porto Alegre.
In Belo Horizonte, where England will play Costa Rica on 24 June, about 200 people took part in a demonstration against the tournament.
Protesters in the southeastern city overturned a police car and smashed the windows of banks and shops. At least one hotel shut its doors and asked guests not to venture outside.
“I’m totally against the Cup,” one protester in Sao Paulo told AP. “We’re in a country where the money doesn’t go to the community, and meanwhile we see all these millions spent on stadiums.”
Further protests are planned across Brazil over the course of the tournament.
Last year, more than a million people joined protests across the country to demand better public services and highlight corruption and the high cost of staging the World Cup.
Since then, other smaller anti-World Cup protests have been staged in Brazil, with some descending into violence.