The protesters said they were fed up with corruption and low wages.
Tens of thousands of anti-government protesters have massed in Belgrade to call for early elections, amid growing anger over the economy and corruption.
Opposition leader Tomislav Nikolic told the crowd he was going on hunger strike until an election was called.
The rally comes three months after a similar protest in the capital.
President Boris Tadic has said Serbia needs stability and dismissed opposition ultimatums about election dates as “totally inappropriate”.
The next election is scheduled for 2012.
But the BBC’s Mark Lowen in Belgrade says the resurgent opposition, combined with news of the hunger strike, may make the call for a fresh poll hard to ignore.
Mr Nikolic’s Progressive Party is seen as the strongest challenger to the Democratic Party, which leads the governing coalition.
“This is my personal act, I am no longer taking any food or water. Serbia deserves sacrifice,” Mr Nikolic told the crowd.
Protesters carried party flags and banners with the slogans “Down with thieves” and “People want justice, work and progress”.
They are demanding higher wages, early elections and a crackdown on corruption.
The protesters were watched by riot police, lining back streets and armed with shields and clubs, ready to deploy in the case of violence.
“I fully sympathise with these people. They are poor and hungry and the government is to blame,” a policeman called Vidoje told Reuters news agency.
Mr Tadic, who met Mr Nikolic on Thursday, said it was not possible to fix an election date until Serbia became an EU membership candidate.
“Elections should be part of our European agenda… not an obstacle,” said the president’s office in a statement released after the meeting.
“Rather than instability and constant veiled threats of violence, Serbia needs exactly the opposite.”