COLOMBO - A bomb has exploded on a bus in a suburb of the Sri Lankan capital, killing 24 people and wounding 40.

The Sri Lankan military blames the attack on Tamil separatist rebels and says all the victims are civilians.

The explosion happened at about 6:45 p.m. while the vehicle was at a bus stand in the town of Piliyandala just south of the capital of Colombo.

A local vendor who witnessed the explosion said the blast sent out a huge fireball, tearing the bus to pieces and sending seats flying everywhere.

Ambulances with sirens wailing flooded a nearby hospital with victims as off-duty doctors and nurses scurried in to treat the injured.

The attack was the first major bombing since a suicide bomber killed 14 people, including a government minister and a former Olympian, at the start of a marathon April 6.

R.B. Dharmasiry, a driver, saw the lifeless body of a child as he ran to help the wounded. "It is horrible, I saw many people laying on the ground,'' he said.

The body of a Buddhist monk and a small child were brought to the morgue. At least three of the bodies were unrecognizable.

"This is definitely an LTTE act,'' said Brig. Udaya Nanayakkara, a military spokesman referring to the Liberation Tigers of Tamil Eelam.

The bomb was hidden in a parcel on the overhead rack above the third row of seats behind the driver, Nanayakkara said.

The Tamil Tigers have fought since 1983 to create an independent homeland for ethnic Tamils, who have been marginalized for decades by successive governments controlled by the Sinhalese majority. More than 70,000 people have been killed in the violence.

Rebel spokesman Rasiah Ilanthirayan did not respond to calls seeking comment.

The latest blast showed the rebels retain the ability to strike deep inside government territory, despite government efforts to crush the group and the maze of security checkpoints erected around the capital designed to prevent such attacks.

In other violence, 17 rebels and four soldiers were killed in battles in the northern war zone Thursday, and air force jets hit a rebel camp Friday morning, the military said.