The accident involving a bus operated by ALSA took place on northbound section of the A1-81 in Avilés, in the Asturias region, at 1.40pm.
"Five people have died," a spokesman for the central government's representative office in Asturias added -- all of them passengers.
Among the 20 injured was the driver, who had to have a limb amputated, the spokesman said.
Images published in local media showed the front of the bus had been split in half by the pillar.
El accidente de autobús en la autovía, en imágenes https://t.co/vhyjYyVAr2— La Voz de Avilés (@lavozdeaviles) September 3, 2018
The bus was travelling on a highway at the base of the viaduct when the accident happened, the causes of which are still unknown.
It is the worst bus crash since March 2016, when 13 foreign students, most of them from Italy, died in a bus accident in the northeastern region of Catalonia.