Around 3,000 locals gathered to oppose a march through the eastern part of the city planned by the neo-Nazi NPD youth, Junge Nationaldemokraten.
Initially around 600 young neo-Nazis were expected, but when more than double that number showed up, police delayed the march, saying they had to check the identities of some participants and wait for reinforcements.
Reports suggest the neo-Nazis became impatient and started throwing stones, bottles and fireworks at the police, who cancelled the march and used a water cannon against those refusing to disperse.
The citizens' protest march under the motto ‘Leipzig Makes a Stand' continued peacefully, and included the Leipzig mayor Burkhard Jung, who had called on all locals to show opposition to the neo-Nazis.
But several groups of anarchists emerged from the crowd and confronted the police, resulting in scuffles and arrests.
Friday night had already seen rioting in the alternative Connewitz area of the city, with anarchists throwing stones and bottles at police, setting up barricades and setting rubbish containers on fire.
The Leipziger Volkszeitung reported that four police officers were injured, one requiring an operation on his hand, while Leipzig police president Horst Warwrzynski was slightly hurt when a firework detonated near him.
A total of three cars were damaged after being overturned, while a bus used by the neo-Nazis was burned out, the paper reported.
It also said that people living along the route that had been selected by the neo-Nazis had received a faked council notice telling them to put their rubbish out on Saturday because the council was making a special collection of organic and bulky rubbish.