An explosion at a fireworks factory in northen Portugal has killed at least five people with three more still missing.

Witnesses said there had been a huge blast early Tuesday evening at the family-run business which is in a small village near the town of Lamego some 350 kilometres north of the capital Lisbon.

More than 100 firefighters were called to the scene.

The blast ripped through the building producing a massive cloud.

All of the workers at the factory came from three local families. As night fell the emergency services coordinator said there was no hope of finding anyone alive.