The accident took place in the town of Hinche, located some 110 kilometers (65 miles) northeast of the capital Port-au-Prince, Haiti's Civil Defense office said.
Witnesses told AFP that the tanker truck hit a wall and spilled fuel as it was preparing to unload at a Total service station.
The flammable liquid spread and caught fire when it reached vendors cooking food on outdoor grills. The flames quickly returned to the tanker, which set off the explosion.
"I saw people screaming as they were being burned alive, and no one could come to their aid," a motorcycle taxi driver told AFP.
More From This Section
Hinche, like many Haitian towns outside of the capital, has no fire department.
"Blue Helmet" soldiers with the United Nations stabilization force rushed to the scene and were able to contain the blaze.
Four homes neighboring the service station also went up in flames, and 22 vehicles were destroyed, local authorities said in a preliminary assessment.
The vehicle had been inspected and met all safety standards, the spokesman said.