At least ten people were killed as Typhoon Goni hit the Philippines, with authorities warning of "catastrophic" conditions in the hardest-hit regions where hundreds of thousands have fled their homes.

The strongest typhoon of the year so far made landfall on Catanduanes Island before dawn with maximum sustained wind speeds of 225km/h and gusts of up to 310km/h ripping off roofs, toppling trees and triggering flash floods.

Goni was downgraded from a "super typhoon" as it swept across the southern end of the most populous island Luzon towards the capital Manila, the state weather forecaster said in its latest update.

"Catastrophic violent winds and intense to torrential rainfall" would hammer areas in the typhoon's path, including provinces near the capital, it warned.

"This a particularly dangerous situation for these areas."

Goni comes a week after Typhoon Molave hit the same region of the natural disaster-prone archipelago and killed 22 people.

At least four people, including a five-year-old child, were killed in Albay province, Governor Alfrancis Bichara told a local radio station.

Two of the victims drowned while another was swept away by volcanic mud. The fourth was killed by a falling tree.

The roofs of two evacuation centres were torn off by the force of the wind and the occupants moved to the ground floors, the provincial public safety chief Cedric Daep told DZBB radio station.

"Flash floods inundated our villages," said Carlos Irwin Baldo, the mayor of Camalig, near Legazpi.

"Our roads have a lot of debris from the mountains such as branches and sand, some which came from Mayon (volcano). Some roads are impassable."

Nearly 400,000 people fled their homes, most of them to evacuation centres, Civil Defense said.  

In Manila, residents were being evacuated from low-lying slum areas at risk of being inundated by several metres high storm surges. The city's airport has been closed as the typhoon approaches.

Loud alarms blared from mobile phones as the National Disaster Risk Reduction and Management Council issued an emergency alert warning of "very destructive to devastating" winds for Manila and surrounding provinces in the coming hours.

Thousands of soldiers and police were on standby to help with evacuations and rescue efforts. Disaster agencies spent yesterday marshalling vehicles, emergency response teams and relief goods before the storm's arrival.

The weather service has warned of flooding and landslides as Goni dumps heavy rain across the already-soaked region.

Schools which have been empty since the start of the coronavirus pandemic are being used as emergency shelters, as are government-run evacuation centres and gymnasiums.

Covid-19 patients being treated in tent facilities have been evacuated, officials said.

The Philippines has recorded more than 378,000 infections, including over 7,100 deaths, which has stretched its resources and complicated evacuations.

Nearly 2,000 people have been left stranded after the coastguard ordered ferries and fishing boats into port in expectation of rough seas throwing up 16-metre waves.

Goni is expected to "slightly weaken" as it crosses southern Luzon and enters the South China Sea later today or early Monday as a typhoon, the state forecaster said.

But another tropical storm is already brewing off the coast and is expected to intensify as it nears the country in the coming days.

The Philippines is hit by an average of 20 storms and typhoons every year, which typically wipe out harvests, homes and infrastructure, keeping millions of people perennially poor.

Its deadliest on record was Super Typhoon Haiyan, which unleashed giant waves on the central city of Tacloban and left more than 7,300 people dead or missing in 2013.