You are not permitted to download, save or email this image. Visit image gallery to purchase the image.
At least 20,000 people were forced from their homes in the capital and weather officials warned the rain could get worse over the next few days.
"Rain will continue to fall in the greater Jakarta area ... the potential for flooding remains," a spokesman for the Meteorology Climatology Meteorology and Geophysics Agency told Reuters. He said rain was expected to remain heavy in mountains above Jakarta, often the source of floodwater.
Four people were reported to have been killed, according to the National Disaster Prevention Agency, which urged residents to stay at home to reduce traffic congestion on blocked roads.
Torrential rain was reported across much of the country, including the main island of Java and heavily agricultural area of southern Sumatra.
However, officials said there had been no reports of any serious damage to key crops such as rice, sugar and palm oil.
An estimated more than 175 mm (7 inches) of rain fell in one part of west Jakarta between 7 a.m. and midday.
"In 30 years of my life here it has never flooded, ever. This is the very first time," said Ninuk, 30, a resident of central Jakarta.
Floods even forced the country's anti-corruption agency to move some of its most prominent prison inmates, including a former deputy head of the central bank, to a notorious women's prison, Pondok Bambu, in east Jakarta, a spokesman said
The flooding will put pressure on the capital's popular new governor, Joko Widodo, who came to office last October with promises to work to fix a huge array of basic infrastructure problems that bedevil the city of about 10 million people.
"The government has to do something to prevent floods ... If it needs to build stronger dykes, then build them," said Syaiful Bakhri, a taxi driver whose car was stuck in the flood.
In the centre of Jakarta, where streets are jammed at the best of times, long lines of idled cars waited for waist-deep water to recede. An inflatable dinghy provided by emergency services ferried people to safety across water dividing the heart of the city.
The city's main airport was open but many roads leading to it were reportedly blocked. Most commuter trains and buses were suspended.
The Jakarta Stock Exchange did open but trading was light.
Flooding was even reported at the presidential palace, forcing the postponement of a meeting between President Susilo Bambang Yudhoyono and his visiting Argentine counterpart, Cristina Fernandez.