At least one person was arrested and five others were injured, three of them journalists.
Protesters had tried to block a road leading to the stadium where the opening ceremony will take place.
Further protests are planned in other Brazilian cities over the expense of hosting the tournament.
In another development, 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.
Police charged with batons and riot shields, firing rubber bullets over heads of scores of protesters near a metro station on the route to the Arena Corinthians. Riot police moved in after the demonstrators refused to clear the road.
The demonstrators had been chanting “there won’t be a Cup”.
The violence happened about 8 miles from the stadium where Brazil will play Croatia at 20:00 GMT.
yxLvnycFWzgAt least 158 people have died in Spain's worst flooding disaster in generations. On October…
Google has been fined two undecillion (a two followed by 36 zeroes) roubles by a…
Embarking on a home remodel is an exciting journey, promising enhanced comfort, increased property value,…
The US presidential candidates continued to campaign across key swing states on October 20. Footage…
Elon Musk has said he will give away $1 million a day to a registered…
India and Canada have decided to expel their top envoys along with other diplomats as…