“There were numerous attacks against security forces,” police tweeted while media broadcast images of projectiles and fireworks thrown at police who had established a security cordon near the city's main train station.
The crowd in the eastern German city was estimated to number around 20,000 and German media reported that some of those who clashed with police were members of far-right groups.
Some of the protesters also attacked journalists and people taking part in a counter-demonstration in Leipzig, a large student city.
The police were out in force and made several arrests but the clashes continued into the evening.
But ignoring the dispersal orders, hundreds of people marched up one of Leipzig's main streets shouting “Merkel must go!” and “peace, freedom, no dictatorship”, according to the German news agency DPA.
Municipal authorities said the protesters had infringed the conditions under which they were allowed to hold their demonstration.
To curb the coronavirus spike in Germany, Europe's biggest economy, Chancellor Angela Merkel has appealed to people to help achieve a “turnaround” by respecting a new round of shutdowns until the end of the month.
Germany recorded a record 23,000 new virus cases on Saturday. The total number of Covid-19-related deaths stood at 11,226.
- German police to step up Covid-19 checks on travellers as rules tightened
- 'Worse than spring': German hospitals fear record number of coronavirus patients
- LATEST: Germany enters month-long partial lockdown
Under the new measures, Germans will not be confined to their homes, but bars, cafes and restaurants must close, as well as theatres, opera houses and cinemas.
Looking ahead to the festive season, Merkel has ruled out any “lavish New Year's Eve parties”, but held out hope that families will be able to celebrate Christmas together.
In Leipzig, protester Robert Koehn, 39, called the anti-virus measures “disproportionate”.
“I simply see the collateral damage that these measures cause: the isolation of people, the bankruptcy that threatens them”, he said.
Fellow protester Anne, 65, said that “for me there is no virus, they cite the coronavirus crisis as a motive, but there are other things behind this”.
Organisers of the protest called for “the immediate lifting of restrictions to fundamental rights” arising from measures taken to prevent the spread of the virus.
Police ordered the demonstrators several times to respect a distance of 1.5 metres (yards) from each other and to wear protective masks.
According to the regional public television MDR, flags recalling the German “Reich” or empire that collapsed after World War I were waved by some protesters, and members of the neo-Nazi group NPD were reportedly seen in the crowd.
Saxony, the state where Leipzig is located, is considered a stronghold of far-right German nationalists, but the rally organisers consider themselves “free-thinkers” representing a range of political and social movements.
The demonstrators are closely tracked by German authorities, especially since several hundred protesters forced their way past police barriers and onto the steps of the national parliament in late August.