The rally drew about 50,000 people, Belgian police said.
It was peaceful at first as protesters chanted and filled streets, waving placards and balloons with slogans like: "We want to be free again" and "No Covid slave ticket", a reference to vaccine passes required for certain activities.
Trouble flared later, with a building housing the European diplomatic service and a sandwich shop broken into, a Reuters journalist said. Police said more than 60 people were arrested, with three officers and 12 demonstrators taken to hospital.
Belgium announced a slight easing of coronavirus restrictions on Friday despite record infections, but also said people must have booster shots after five months to keep passes for bars, cinemas and many other public spaces.
'ANTI-DICTATOR, NOT ANTI-VAXXER'
"I'm angry about the blackmail that the government is doing," said protester Caroline van Landuyt, who had herself been vaccinated. Her children did not want to be inoculated but had to so as to travel and play sport, she said.
Sunday's scenes in the Belgian capital were reminiscent of clashes last November, when around 35,000 protesters took to Brussels' streets and there was also violence.
EU foreign policy chief Josep Borrell thanked police and condemned "the senseless destruction and violence" in a tweet that showed him standing in front of a broken pane of glass.
Some protesters let off fireworks as police advanced into a park. Riot officers ringed the water cannon. "I'm not an anti-vaxxer, I'm anti-dictator," read another placard.
Belgium is facing a fifth wave of COVID-19 infections, with the peak not expected for at least a couple of weeks.
Some 89% of Belgian adults are fully vaccinated and 67% have now also received a booster shot.
(Reporting by Johnny Cotton; Writing by Sabine Siebold; Editing by Alexander Smith and Andrew Cawthorne)
By Johnny Cotton