Germany has seen a wave of demonstrations after the conservative CDU/CSU alliance passed a non-binding motion on migration reform in parliament last week with support from the far-right Alternative for Germany (AfD).
The controversial vote has dominated the campaign ahead of national elections on February 23.
Protests against the far right drew 250,000 people in the southern city of Munich on Saturday, police said.
Organisers put the number of demonstrators in the Bavarian capital at some 320,000. Police the march was peaceful.
Protesters flocked to the Theresienwiese, where the world-famous Oktoberfest beer festival is held every autumn, to march for "diversity, human dignity, cohesion and democracy".
People held banners denouncing racism and fascism, while the peaceful demonstration also received support from civil society organisations ranging from the Munich Film Festival to church and charity organisations and the Bayern Munich football club.
Politicians from Bavaria's centre-right Christian Social Union (CSU) stayed away, with the state justice minister, Georg Eisenreich, saying that he expected criticism of his party's asylum and migration policies.
At least 20,000 people gathered at the Kornmarkt square in Nuremberg on Saturday, among them were many young people and families with children. The crowd chanted, "We are many".
Marches were also reported from Frankfurt and Stuttgart.
In the north-eastern port city of Rostock, around 3000 people took to the streets to demonstrate for democracy and against right-wing extremism.
The theme of the protest was "All against fascism - Rostock stands together!"
Similar marches were reported in Boizenburg and Wismar. And another 3000 people protested in Hamburg.
Tens of thousands of people also took part in rallies and protest events against a shift to the right in Bremen and Lower Saxony.
According to police, around 24,000 people took part in a rally organised by the "Grandmas Against the Right" initiative in downtown Hanover.
There were additional protest actions by left-wing groups in Hanover, a police spokesman said.
Several protesters reportedly attempted to prevent people from visiting an AfD election campaign stand.
Police pushed the group, which comprised around 250 people, away from the stand.
At least 35,000 people gathered for a rally in Bremen titled "Bremen sticks together," police said.
Other protests were reported from Osnabrück and Braunschweig.
Last weekend, hundreds of thousands of people took to the streets nationwide, many protesting against a controversial vote in parliament on a tougher migration policy.
The vote saw a non-binding motion proposed by the centre-right opposition leader Friedrich Merz passed in the lower house, but only thanks to the votes of the AfD.
Critics accuse Merz of breaking the long-standing "firewall" preventing co-operation with the AfD.
Another migration bill introduced by the conservatives narrowly failed to secure a majority in parliament a couple of days later, as a handful of lawmakers from the CDU did not cast their votes.
Merz is considered the favourite to become Germany's next chancellor, according to recent polls. Although his collaboration with the AfD has ignited a firestorm, the move has apparently not significantly harmed his bloc's standing in the latest polls.