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.
yxLvnycFWzgThe US House Ethics Committee has voted to release its report on former Republican Representative…
ABC News has agreed to pay $15 million to President-elect Donald Trump to settle a…
South Korea’s parliament has voted to impeach President Yoon Suk Yeol over his failed attempt…
Israeli war planes have carried out more than 100 air strikes in Syria on December…
President-elect Donald Trump has threatened to impose 100% tariffs on the BRICS countries if they…
Syrian troops have withdrawn from the city of Aleppo following an offensive by rebels opposed…