The defence ministry immediately accused Tamil Tiger rebels of setting off the bomb, while the rebels denied they were responsible.
Passengers were getting off the vehicle to be checked by troops manning a road block when the blast occurred, said police in the town of Ampara, 350 kilometres (220 miles) east of the capital Colombo.
"The bomb went off just at the Kondawattuwan check point," the police officer said. "We now believe that the blast was aboard the bus.
It may have been a parcel bomb or even a suicide attack.
"
The head of the Ampara hospital, Lankathilaka Jayasinghe, said the injured were still being rushed to the region's main hospital.
"Three people were dead on admission and 12 others died in hospital," Jayasinghe said, adding that 25 more people were undergoing treatment.
The Liberation Tigers of Tamil Eelam (LTTE) denied involvement in the attack.
"We have nothing to do with this blast," rebel spokeswoman Navaruban Selvy said by telephone from the rebel