Three attackers on motorbikes blew themselves up near parliament and the city’s police headquarters.
The number of dead is likely to rise, with the blasts leaving body parts strewn in the streets.
The Islamic State (IS) group has said it was behind the attack, the militants’ Amaq News Agency reports.
The attacks came within three minutes of each other. More bombs have been found in other parts of the city, officials said.
“The bomb threats are still active, especially from suicide attackers,” said police spokesman Fred Enanga.
“We believe there are still more members of these domestic terror cells, especially the suicide bomb squad that has been created by the ADF.”
A fourth attacker has been arrested and an explosive vest recovered, police said.
Two policemen were among the dead. Thirty-three others were injured in the blasts, including five critically.
Proceedings in parliament were called off and MPs advised not to come to the building following the attacks.
Cars parked near parliament went up in flames, while the explosion near the police station shattered windows.
“A booming sound like that from a big gun went off. The ground shook, my ears nearly went deaf,” Peter Olupot, a bank guard who was close to the attack near parliament, told Reuters news agency.
IS gave a statement on its Telegram channel, then reported by its Amaq News Agency, saying that its members carried out the attacks.
Officials had blamed the Allied Democratic Forces (ADF), a rebel group which pledged its allegiance to IS in 2019.
Originally formed in Uganda but now based in the DR Congo, ADF increasingly carries out attacks in the name of IS.
There have been a number of bomb explosions in recent weeks. Last month, a 20-year-old waitress was killed after a device, left in a shopping bag, detonated in a bar in the city. Days later several people were injured when a suicide bomber blew himself up in a bus near Kampala.
IS claimed both attacks, and police said there were close links with ADF – including the bus bomber being on a wanted list of ADF members. (Courtesy BBC)