The flooding, caused by days of heavy rain, has blocked roads and forced businesses in the capital to close.
Areas including the central business district (CBD) were inundated and traffic was grid-locked as residents struggled to move around the city.
Some 20,000 people have abandoned their homes, as officials warn that the rain could worsen in the next few days.
The governor of Jakarta, Joko Widodo, has declared a state of emergency.
He also said he was committed to making a “breakthrough” in efforts to tackle the flooding.
The CBD normally escapes damage when Jakarta experiences its heavy seasonal rains, but on Thursday, many government offices and businesses were forced to close because staff could not get to work.
Local television pictures showed people wading through almost neck-high water in some parts of the city, while in others, the waters were up to 2 m (6.5 ft) deep.
The presidential palace grounds are among areas flooded, and images showed President Susilo Bambang Yudhoyono walking around the palace compound with Foreign Minister Marty Natalegawa, wearing trousers rolled up above his knees.
Susilo Bambang Yudhoyono told reporters: “I have no problem with the palace being flooded. The most important thing is the people are protected.”
He had instructed the national police chief and the army chief to deploy their forces and evacuate flood victims, said presidential spokesman Julian Pasha.
The Jakarta Post said two of the people killed in the capital were children, aged 13 and two.
State funds are available to help those affected by the flooding following the declaration of the state of emergency, which will remain in effect until January 27.
A Transport Ministry spokesman said air travel was not disrupted.
A spokesman for state electricity company PLN said it had cut power supplies to a number of areas to minimize the danger of electrocutions, the Jakarta Globe reports.
The last severe flooding in Jakarta was in 2007, when at least 40 people were killed and hundreds of thousands forced from their homes.
Japanese Prime Minister Shinzo Abe is due in Jakarta on Friday to meet top leaders and deliver a foreign policy speech.
OCgrLDz3knEThe US House Ethics Committee has voted to release its report on former Republican Representative…
ABC News has agreed to pay $15 million to President-elect Donald Trump to settle a…
South Korea’s parliament has voted to impeach President Yoon Suk Yeol over his failed attempt…
Israeli war planes have carried out more than 100 air strikes in Syria on December…
President-elect Donald Trump has threatened to impose 100% tariffs on the BRICS countries if they…
Syrian troops have withdrawn from the city of Aleppo following an offensive by rebels opposed…