The blasts were centred around Thamrin Street, a major shopping and business district close to foreign embassies and the United Nations offices.
Police say the situation is now under control, with five suspected attackers among at least seven people killed.
So-called Islamic State (IS) said it carried out the attacks, a news agency linked to the militant group said.
Separately, Indonesian police said they suspected a local group allied to IS was to blame.
Indonesian President Joko Widodo described the attacks as an “act of terror”.
“We all are grieving for the fallen victims of this incident, but we also condemn the act that has disturbed the security and peace and spread terror among our people,” he said.
Images from Jakarta have shown several bodies lying on the road outside a cafe, as well as seriously injured people being carried away.
Details remain unclear, but at least one of the blasts hit a Starbucks cafe and a police security post.
It appears the gunmen then holed up in another part of the complex that houses the Starbucks.
Armed police, snipers and armoured vehicles were deployed on the streets of the capital.
Gunfire broke out after police arrived at the cafe – there were several further explosions and reports of police chasing suspects. Sporadic gunfire was reported for several hours afterwards.
A UN official, Jeremy Douglas, told the BBC he was about 150m (450ft) away from one of the first blasts near the UN’s building.
“Then we ran into the building. We heard a third explosion. We got up to our office on the tenth floor and we heard a fourth, a fifth and a sixth.”
A few hours later, police said four attackers had been killed, then shortly after revised the number to five, including a foreigner.
National Police Deputy Chief Commander Gen Budi Gunawan said two had been killed in a shootout outside a theatre and two others blew themselves up at the police post in front of Starbucks.
Police spokesman Col Muhammad Iqbal said the situation was “under control”, with no suspects hiding inside the shopping centre.
Police had initially said there could be up to 14 assailants. Three attackers have been arrested, reports say.
Indonesia has been attacked by Islamist militant groups in the past and was on high alert over the new year period after threats from the so-called Islamic State (IS).
There has been no confirmation of the group’s claim it carried out the attack, but National police spokesman Anton Charliyan said the group had earlier warned of a “concert in Indonesia” which would be international news.
He said the attackers had tried to imitate the co-ordinated attacks on Paris and there was a “strong suspicion that this is an Isis (Islamic State)-linked group in Indonesia”.
Up to 200 Indonesians are estimated to have gone to Syria to fight with IS.
Indonesia is the world’s most populous Muslim nation but by and large is secular, although in recent years the threat of radicalism has remained high as small networks of militants are still thought to be operating in the country.