The Zimbabwe Broadcasting Corporation published photographs of the destroyed vehicle on a highway between the South African border and the second city Bulawayo.
“At the moment we know that more than 42 people died,” police spokeswoman Charity Charamba said, adding many of the dead were “burnt beyond recognition”.
She said the driver who survived the accident “suddenly sensed a strange smell in the bus” and pulled off the road, turned on the lights and the bus caught fire.
Many of the 70 passengers were trapped in the inferno.
The bus company Brooklyn Buses said in a statement released to local media that it was “remorseful, deeply shaken” by the loss of so many lives.
“It is suspected a gas cannister smuggled by a passenger exploded in the luggage cabin,” it said.
“Upon sensing something was amiss, the bus driver pulled over to check and when he switched on the lights there was an explosion inside the bus,” said the company.
Police have launched an investigation, Charamba added.
Public broadcaster ZBC said around 30 injured survivors are being treated at Gwanda town hospital.