The French Prime Minister Manuel Valls told reporters near the crash site that eight people survived the accident, including four who were injured and in serious condition.
French media reported that the bus driver was among those who escaped, and the truck driver was killed.
Valls said: "Forty-two people were killed in atrocious conditions in this bus in flames after this very violent frontal collision." He says the passengers were "elderly people who were going on an excursion for one day. They should have returned home tonight."
He added: "It's a terrible shock for the area, for (the region) Aquitaine, for France."
Both vehicles caught fire after the crash occurred at 7.30 am local time (6.30 am GMT) on Friday and the high number of deaths has been attributed to the fire by officials.
The mayor of the town where the collision occurred, Xavier Sublett of Puisseguin, said on i-Tele television that the driver of the bus managed to open the door, allowing eight people to escape.
He said helicopters were evacuating severely burned victims.
The circumstances of the crash remain unclear, according to Pierre Dartout, the top government official for the Aquitaine region.
Europe-1 radio reported that the bus was carrying primarily elderly people. It was not immediately clear how many people were on the bus, or their nationalities or other details.
Eight people are thought to have survived the crash.
Five of the survivors were injured, though three are no longer being treated by medical staff, Sud Ouest newspaper reported.
The incident is believed to be one of the worst road accidents in France's history.
French President François Hollande said it was an "immense tragedy," and promised an investigation into what happened.
He also expressed "the solidarity of the whole nation" with loved ones of the victims.
Un accident a provoqué de nombreux morts en Gironde. Le gouvernement français est totalement mobilisé sur cette terrible tragédie.— François Hollande (@fhollande) October 23, 2015
A French legislator said that most of the victims in the crash were elderly people from southwest France heading on a day trip.
Gilles Savary, lawmaker from the region, said on BFM television that a bus company from the town of Libourne was leading the group on a tourist trip.
Police say major road diversions are now in place in the region.