Demonstrations against a planned neo-Nazi rally in Dresden turned violent on Saturday, but succeeded in blocking right-wing extremist marches to the city centre.

Officers used truncheons, tear gas and water cannons to prevent protesters from breaking into an area reserved for right-wing extremists who had been granted permission to gather in the eastern city.

Thousands of anti-fascist demonstrators breached the barriers and charged into the site, which around 600 neo-Nazis were trying to reach from different parts of Dresden.

Other demonstrators blocked the roads leading to the reserved area at the city's main station.

"The mood among the right-wing extremists is extremely aggressive and heated, because they can't march due to the blockades," said Interior Ministry spokesman Frank Wend.

The atmosphere was also tense between police and leftist demonstrators who threw paving stones, bottles and fireworks at the officers, damaging cars and breaking windows in an office building.

The thwarted neo-Nazi groups then decided to leave Dresden to travel 100 kilometres east and carry out their rally in the city of Leipzig, where police braced themselves for their arrival.

A Dresden court had ruled late Friday that the neo-Nazi rally could go ahead, despite objections by city authorities.

The city had expected up to 4,000 right-wing extremists and 20,000 opposing demonstrators.

The previous weekend, around 17,000 residents of Dresden had prevented 1,300 neo-Nazis from marching near the city centre.