Police have said that the explosion was carried out by fighters from the Liberation Tigers of Tamil Eelam (LTTE), a separatist group seeking a state in the country's northeast.
Witnesses said that the bus was carrying officer workers and school children returning from private classes.
|"The whole place smelled of explosives, and debris was all over"|
Saranga Sadara, witness
The bus burst into flames after the explosion and the death toll is expected to rise.
Saranga Sadara, who had helped the wounded, said he was in a neighbouring bus when the bomb exploded.
"The whole place smelled of explosives, and debris was all over," he said.
No one has claimed responsibility for the bombing.
Mahinda Rajapakse, the president, said in a statement that people needed to be more wary as such incidents could be on the rise.
Week of fighting
Al Jazeera's Minelle Fernandez, reporting from Colombo, said it has been a violent week in the country.
Dozens of LTTE fighters were killed this week in fighting in the Jaffna Peninsula in the far north.
"Unfortunately this has culminated in many civilian deaths," she said.
Fernandez also said that there had been a wave of attacks since the end of the ceasefire between the LTTE and the Sri Lankan government in January.
"Even before the truce had officially ended, violations of the agreement were common. Now, both sides have no obligation to this agreement, making the situation considerably worse, reflected through the rising death toll," she said.
Rajapaksa said the attack showed "the terrorists had once again resorted to killing innocent civilians in the face of heavy setbacks on the battlefield.''
The government has intensified attacks on LTTE controlled territory in the north of the island since the end of the ceasefire.
On Saturday the Sri Lankan air force attacked LTTE positions in the northern Welioya region, the military said in a statement.
Last February, a similar blast wounded 18 people aboard a bus.
In the same month, suspected LTTE fighters used a parcel bomb to blow up a crowded bus in northern Sri Lanka, killing at least 20 people.
The latest blast came as security forces and Tamil Tiger fighters were engaged in fierce clashes in the north of the country, where both sides were reported to have suffered heavy casualties.