On a day that saw temperatures fall below 20 degrees Celsius, a vast column of people under communist, nationalist and liberal banners marched from a central Moscow square to rally on Bolotnaya Ploshchad across the Moskva river from the Kremlin.

Although the title of the demo was "For free elections," the prime sentiment of many demonstrators seemed to be getting Prime Minister Vladimir Putin to resign.

Chants of "Putin Leave!" and banners with variations on the theme of "Putin, you're fired!" predominated.

Police estimated "up to 40,000" people attended the march, though independent observers and several Russian newspapers put the number closer to 100,000.

From within the crowd, attendance seemed to be at least equal to the December 24 rally, which attracted between 50,000 and 100,000 demonstrators.

Pundits had warned that the protest movement – a motley alliance including westernising liberals, communists and monarchist nationalists – had shown signs of fracture and fatigue after pulling off the largest anti-government protests since the 1990s in December.

But instead of staying home, and in defiance of advice from the country's top doctor who warned people not to go out, the crowd lapped up the cold, singing along with Russian rock legend Yuri Shevchuk in a rendition of a song called "Moroz" (frost).

Protesters, many of whom were dressed in furs and ski gear, cheered "the sun is with us!" as clouds cleared.

The crowd included presidential candidate Mikhail Prokhorov and former Finance Minister Alexei Kudrin, a close friend of Mr Putin – though neither took to the stage.

Meanwhile, pro-Putin groups held their own, simultaneous counter-demonstration in the south west of the city.

Speakers at the rally, dubbed "We have much to lose" warned the crowd of the dangers of a Ukraine-style "Orange revolution."

Police estimated 138,000 people rallied at the pro-Putin event. The opposition quickly dismissed that figure as grossly inflated. Russia's state-owned news agency RIA Novosti said its correspondent thought the real attendance was "much lower" than the official figure.

Mr Putin, who is on a trip to the Urals, expressed "surprise" at the size of the rally and offered to pay part of the fine the rally organisers would face for exceeding the planned attendance of 15,000.

Rumours circulating on the internet that most of the pro-Putin demonstrators had been bussed in from outside Moscow and had been paid 1000 roubles (about £20) each were impossible to verify.

The Gazeta.ru online newspaper quoted several participants who said they were state employees who had been ordered to attend by their bosses.

Speakers at the opposition demo reiterated demands for a rerun of the marred parliamentary vote of December 10 and again called on Russians not to "give a single vote to Putin."

The organisers have promised to return to Moscow's streets on February 26, two weeks before the elections.

But despite a sense amongst the demonstrators on Bolotnaya today that the Kremlin is on the back foot, it is unclear whether they can have an impact on the outcome of the March 4 elections.

Opinion polls show Vladimir Putin polling well ahead of his nearest rivals, and there is no single candidate the very disparate opposition are likely to rally around.

The liberal core of the opposition movement is likely to baulk at voting for Putin's nearest rival, Communist leader Gennady Zyuganov, in the event of a second round run off.