A spokesman for the Colombo national hospital said 44 wounded people, including two children and four women, had been brought in after the blast.
"We have sent 44 people to hospital," a military official at the scene told reporters.
A spokesman for the Colombo national hospital said three of the victims were in a serious condition.
Police cordoned off the bustling area following the bombing, which came as government forces kept up a major offensive against separatist Tamil Tiger fighters in the north of the island.
There was no immediate claim of responsibility for Saturday's attack, but police and military officials said they suspected the Liberation Tigers of Tamil Eelam (LTTE).
The Tigers have also been blamed for a string of bomb attacks against public transport in recent months as the military intensified pressure on the rebels' mini-state in the island's north.
The attack came as the defence ministry said another 18 fighters and a government soldier were killed in fresh fighting across the island's north on Friday.
The latest fighting brought the number of rebels killed by troops since January to 6,185, according to government figures.
The government says 582 of its troops have died over the same period.
The bombing in Colombo's Pettah area came a day after Tiger rebels accused government forces of setting off a roadside bomb and killing two civilians inside guerrilla-held territory.
A man and a child died when their motorcycle was caught up in the bomb attack at Nedunkerni in the vast Wanni region on Thursday evening, the LTTE said in a statement on Friday.
Tens of thousands of people have died on both sides since the LTTE launched a separatist campaign in 1972 for a homeland for minority Tamils.