Water levels on the River Sava are expected to peak later, threatening the country's biggest power plant.
It comes after the worst floods in the Balkans for decades left more than 35 dead and forced tens of thousands of people to flee their homes.
In Bosnia-Hercegovina, landslides have buried houses and disturbed landmines laid during the war in the 1990s.
The floods are also affecting Croatia.
Three months' worth of rain fell on the region in just a few days, causing rivers to burst their banks and sweep into people's homes.
Flood alerts are still in place in many areas of Serbia and northern Bosnia, according to the EU Floods Directive.
Twelve bodies were recovered from the Serbian town of Obrenovac on Sunday, Serbian Prime Minister Aleksandar Vucic said. It takes the toll in Serbia to 17.
Meanwhile at least 19 people at believed to have died in Bosnia. The authorities have warned that the death toll could still rise.
The rain has finally stopped in Belgrade, reports the BBC's Guy Delauney in the Serbian capital.
But officials fear water flowing from neighbouring Croatia and Bosnia could cause a "flood wave" on the River Sava on Sunday evening.
Emergency workers and volunteers have stacked sandbags along the river in Belgrade and other towns such as Sabac and Sremska Mitrovica.
Belgrade was basking in the Sunday sunshine, with the mercury pushing 25 degrees - just as it should be at this time of year. But on the banks of the River Sava, there was no time to relax in the shade.
Scores of young volunteers lined up along the stretch of river from Brankov's Bridge to Ada Ciganlija island - along the bicycle path which would normally be packed with weekend riders. Members of the emergency services marshalled them as they crowded around lorries delivering loads of sandbags, before passing them hand to hand, down the line.
"I came to help my country, my people, my city," said Mladen Kos, who has worked around the world in the hospitality industry. "We're waiting for the Danube river - if it rises up tonight, then the Sava river will be blocked and we will be in big trouble."
Serbia's prime minister has warned people that they cannot fight nature. But the people here are still doing all they can to stop it flooding their homes.
"We are doing all we can," said Prime Minister Vucic.
The main concern is whether flood waters could knock out the Nikola Tesla power plant, which supplies much of the country, our correspondent says.
The coal-fired plant is in Obrenovac, south-west of Belgrade, where most of the population have now been moved to safety.
Flood levels in the town dropped on Sunday, enabling officials to move people to safety by road.
There are also concerns at another power plant, at Kostolac, west of Belgrade, where the Mlava river broke through a second ring of flood protection, Tanjug news agency reports. Kostolac provides 20% of Serbia's electricity, it says,
Serbian tennis player Novak Djokovic has joined calls for help.
"Support and solidarity for my people in Serbia!'' he wrote on his Twitter account.
Almost one-third of Bosnia has been affected. The north-east is worst-hit, with houses, roads and railway lines submerged.
Bosnian Serb police chief Gojko Vasic said the situation had been particularly difficult in Doboj "because the flood waters acted as a tsunami, three to four metres high", the Reuters news agency reported.
"No-one could have resisted," he said.
Humanitarian aid and technical equipment have arrived from Russia and EU countries, officials say.
Bosnian Security Ministry spokesman Admir Malagic said that about one million people - more than a quarter of the country's population - live in the affected area.
Chairman of the Bosnian three-man presidency Bakir Izetbegovic said that his country is facing a "horrible catastrophe", the Associated Press reported.
"We are still not fully aware of actual dimensions of the catastrophe," he said.
Emergency workers in Serbia are preparing for a "flood wave" on one of the country's main rivers.