Police said there was a party on the “overloaded” boat and many passengers were drunk and playing musical instruments when the disaster occurred.
The boat capsized and sank in Lake Albert, in western Uganda, after too many passengers – who were not wearing life jackets – moved to one side of the vessel.
Nine bodies have been recovered from the lake and 21 people are still missing a day after the tragedy, which left just 15 survivors.
The footballers and fans from Kaweibanda village were travelling to a nearby village in Uganda’s Hoima District for a match that was part of Christmas Day festivities, the Daily Monitor reports.
Passengers were drumming, singing and blowing trumpets and whistles when the boat capsized about 330ft from shore on Africa’s seventh-largest lake, which borders DR Congo.
Buliisa District Police Commander John Rutagira told AFP, “There was a party on the boat, the passengers were dancing and others were drunk.
“The boat was overloaded with 45 people, all members of the football team and local fans.”
He added, “The water was calm but the problem came in when the merry-making team and fans tilted to one side of the boat. It capsized killing about 30 people.”
Rutagira told the Daily Monitor that police suspect the boat’s operator was intoxicated.
In the chaos that ensued local fishermen rescued passengers who were crying for help.
One passenger said he survived by swimming to shore.
Among the dead was an 18-year-old woman who was travelling to the match to cheer on the local team.
She is survived by a five-month-old baby who was being watched by the woman’s parents.
Godfrey Opira, the local district’s chairman for football referees, said all occupants of the boat did not have life jackets.