The attack took place on Monday near the town of Habarana, about 190km northeast of the capital, Colombo, police and military said.
Brigadier Prasad Samarasinghe, a Sri Lankan military spokesman, said Tamil Tiger separatist fighters had rammed a small truck loaded with explosives into the convoy.
At least 102 people were killed and more than 150 wounded, said a spokesman at the media centre for national security in Colombo, adding that the toll could climb.
The dead were mostly navy sailors but some civilians were also killed.
The navy gathers its men at a transit camp near Habarana before transporting them to the eastern naval base of Trincomalee.
“There were about 15 buses and 13 were damaged in the explosion,” a navy officer in Colombo, who did not want to be identified, said.
“The sailors were in civilian clothes and were not carrying weapons because they were either going on leave or reporting back after vacations,” the national security spokesman said.
He said the toll could go up as many bodies had been blown to bits and a count was still ongoing.
Rasiah Ilanthiriyan, a Tiger spokesperson, said on the pro-rebel tamilnet.com website: “When Sri Lanka air force bombers continue to bomb targets in Tamil homeland … How could anybody expect the Tigers to refrain from targeting military installations.”
The attack comes amid increasingly heavy-fighting between the Sri Lankan army and the Tigers.
A Sri Lankan air force fighter jet meanwhile crashed into a lagoon on the outskirts of Colombo on Monday, a military spokesman said.
“A Kfir [fighter jet] has crashed into the Negombo lagoon. We are investigating whether it was an attack or a technical fault,” the spokesman said, referring to a township about 30km north of Colombo.
Early on Monday morning the Sri Lankan navy said that it had destroyed a trawler loaded with arms, killing at least five Tamil Tiger fighters late on Sunday.
Navy patrol boats spotted the trawler off the coast about 220km from Colombo and fired warning shots, a defence ministry official said on condition of anonymity in line with policy.
The Tigers shot back and the navy fired at the trawler for about 10 minutes, setting off a large explosion, the official said.
“Considering the explosion that occurred on the trawler, we believe that it was transporting a large quantity of explosives and arms.”
He said that the craft sank, killing five suspected Tamil Tiger fighters.
Also on Sunday, Kumar Sandanayake, a police spokesman, said that in northern Vavuniya, Tamil Tiger fighters captured three ethnic majority Sinhalese civilians and two Muslims.
He said the Muslims were set free, but the Sinhalese were blindfolded and fatally shot.
On Saturday night Tamil Tigers fired artillery and mortars at military positions on the northern Jaffna Peninsula, killing two soldiers and wounding 13 others, an officer at the media centre for national security said on condition of anonymity.
Troops repulsed the attack using artillery and mortars, he said.
The military controls nearly all of the Jaffna Peninsula, which the Tigers claim as the Tamils’ cultural heartland. The Tigers still hold small pockets in the area.