The demonstrators, some dressed in fatigues, waved Russian flags and many sported the black and orange St George ribbon, a symbol of victory over Nazi Germany that pro-Russian Ukrainian separatists have adopted as their badge of honour.
Police said up to 40,000 people turned out with around 1,000 attending a similar rally in the second city of Saint Petersburg. Critics claimed many were paid to attend or bussed in.
"Yankee go home and take the Maidan with you," read one massive banner referring to Ukraine's pro-Western uprising that came to be known as the Maidan protests.
Established early this year, the umbrella movement that organised the rally, Anti-Maidan, includes several groups representing bikers, Cossacks, athletes and Russian veterans of the Afghan and Chechen wars, some of whom have fought alongside rebels in eastern Ukraine.
Also Read
Members employed highly emotive, aggressive language to rouse the crowd at the apparently choreographed event in support of Putin, who has accused the West of stirring the Ukraine unrest.
"I am calling on you to rally around the Russian president at a time when all of Russia's enemies are mobilising," Alexander Zaldostanov, the leather-clad leader of biker gang the Night Wolves, told the rally.
"A Maidan will not take place in Russia," announced singer Victoria Tsyganova, dressed in a red coat and red kerchief.
The instantly recognisable strains of "The Holy War", a famous WWII-era song, emanated from loudspeakers.
Critics say the Moscow event was organised with the help from authorities, with many participants brought in on buses or paid to be there. Organisers deny the claims.
After the Kiev uprising ousted Kremlin-backed president Viktor Yanukovych last February, Russia annexed Crimea from Ukraine and has since backed a separatist insurgency in the east of the country.
State television gave ample coverage to today's event and said similar rallies had been held across the country.