The bus was covered in shrapnel marks
Bomb attacks on two buses in Sri Lanka have left 22 people dead and about 100 injured, the first of them hitting a vehicle in a suburb of Colombo.
Twenty people died and more than 80 were hurt in the blast in the capital while a later attack in the town of Kandy killed two and injured 20.
Fighting is continuing between troops and Tamil Tiger rebels in the north.
Transport has been frequently attacked in the south while the army is accused of killing civilians in the north.
'I blacked out'
Military spokesman Brig Udaya Nananyakkara said the rebels had detonated a roadside bomb that targeted the bus in the Colombo suburb of Moratuwa.
RECENT COLOMBO ATTACKS
6 June: 20 killed in bomb attack on bus in suburb of Moratuwa
4 June: 24 injured in blast targeting commuter train
26 May: Bomb attack at Dehiwela station kills eight
16 May: Nine killed in suicide bombing in city centre
25 April: 24 killed in bus blast in suburb of Piliyandala
3 Feb: 11 killed in suicide attack at main city train station
Eyewitnesses said they had seen bodies inside the bus, which had shrapnel marks all over it.
"I was standing in the middle of the bus when there was a loud noise and the whole bus toppled to the side," office worker Shanika Priyadharshani told AFP news agency.
"I blacked out for a while. There was black smoke, people were dead around me. I shouted for help and someone pulled me out."
The attack in the central hill district of Kandy also targeted a crowded commuter bus. A police spokesman said the device had been placed inside the vehicle.
President Mahinda Rajapaksa accused the rebels of "outrageous brutality" and a lack of respect for human life.
There was no immediate word from the Tamil Tigers, who routinely deny any role in such blasts.
The rebels are blamed for a spate of recent bomb attacks in and around Colombo, mainly targeting buses and trains.
Dozens have been killed and many more wounded.
The damaged bus at the scene of the explosion
The latest attacks follow accusations by the rebels that the military are behind roadside bombings which have killed many civilians in the country's rebel-held north.
The rebels blame the military for the deaths of two civilians in rebel-held territory this week, and 20 others during May.
Government officials deny the allegations.
Sri Lanka's civil war has intensified since the government formally ended a ceasefire with the rebels in January. In practice, the truce had been dead for months.
In the north of the island the military is carrying out an offensive which it says is aimed at crushing the rebels by the end of this year.
Troops drove the Tamil Tigers from strongholds in the east last year.
The rebels have fought for a generation for an independent state for the Tamil minority in the island's north and east.
About 70,000 people have been killed since the civil war began in 1983.