Thousands of demonstrators in Brussels have marched against a UN migration pact, signed in Marrakech last week.
Flemish right-wing parties called the march, which took place near major EU institutions, amid fears the pact could lead to an increase in immigration.
Police deployed tear gas and water cannon as clashes broke out. About 5,500 protesters took part.
A counter-protest organised by left-wing groups and charities in the city centre drew about 1,000 people.
The largest member of Belgium’s ruling coalition, the right-wing N-VA party, left the government last Sunday in protest against the prime minister’s decision to sign the agreement.
In July, 196 UN members agreed the Global Compact for Safe, Orderly and Regular Migration.
It was signed by 164 countries in Marrakech last week, with the US and a number of European states, including Austria, Hungary, Italy, Poland and Slovakia, refusing to formally adopt the agreement.
The deal, which is not legally binding, seeks an international approach to migration that “reaffirms the sovereign rights of states to determine their national migration policy” and asserts the “fundamental” importance of legal migration.
But critics in Europe believe it will lead to increased immigration to the continent.
More and more countries in Europe have clamped down on migration in recent years.
Doctors Without Borders (MSF) was forced to cancel its migrant rescue operations in the Mediterranean in December after repeated battles with Italy.
And in June, Hungary made it illegal to help asylum seekers.