Filipe Sousa, mayor of Santa Cruz where the accident happened, said 17 women and 11 men were killed in the crash, with another 21 injured.

A doctor told reporters another woman died of her injuries in hospital.

"I express the sorrow and solidarity of all the Portuguese people in this tragic moment, and especially for the families of the victims who I have been told were all German," President Marcelo Rebelo de Sousa told Portuguese television.

Following the crash he said he would travel to Madeira overnight.

A woman being helped by rescue workers at the crash scene. Photo: DPA

Portuguese Prime Minister Antonio Costa added on Twitter that he had contacted German Chancellor Angela Merkel to convey his condolences.

"It is with profound sadness that I heard of the accident on Madeira," he wrote on the government's Twitter page.

"I took the occasion to convey my sadness to Chancellor Angela Merkel at this difficult time," he added.

The regional protection service in Madeira confirmed 28 deaths in the accident that happened on Wednesday evening, while hospital authorities said another woman later died of her injuries.

The bus had been carrying around 50 passengers.

Regional government Vice President Pedro Calado said it was "premature" to speculate on the cause of the crash, adding that the vehicle was five years old and that "everything had apparently been going well".

Judicial authorities had opened an investigation into the circumstances of the accident, the Madeira public prosecutor's office told the Lusa news agency.

Medical teams were being sent from Lisbon to help local staff carry out post-mortems on the dead.

Often called the Pearl of the Atlantic, Madeira is located about 950 kilometers southwest of Lisbon in the Atlantic Ocean.

It hosts thousands of tourists each year, attracted to its subtropical climate and rugged volcanic terrain. It is an especially popular destination for German and British holidaymakers.