Typhoon Haima has slammed into the northeastern Philippine coast, displacing tens of thousands and  threatening millions of residents.

The strongest typhoon to hit the country in three years made landfall on Wednesday over the town of Penablanca in the province of Cagayan, where power was cut off hours earlier.

Haima has a weather band of 800km that puts more than 10 million people across the northern parts of the Philippines' main island of Luzon within its reach, according to the government's disaster risk management agency.

Authorities warned coastal communities to expect storm surges of five metres or higher.

"It's already started. The wind is strong, the waves are big," said Julie Hermano, manager of a small resort in Santa Ana, a coastal town of about 30,000 people which is in the typhoon's direct path. 

"Some residents have been panic-buying food in markets because we were told it's going to be a super typhoon. We've already tied down our water tank and prepared our [power] generator set."

The agency raised to the highest a five-level storm warning in six northern provinces.

About five million people were at high risk within the 100km radius of Haima, according to the United Nations Office for the Coordination of Humanitarian Affairs.

"We pray we will be spared the destruction such as the previous times, which brought agony and suffering," President Rodrigo Duterte said in Beijing, where he is currently on a four-day visit.

"But we are ready. Everything has been deployed."

Flights to the north were suspended and schools were closed.

The Philippine capital of Manila is about 350km south of where Haima struck land. Authorities said the city, with about 12 million people, was not expected to be badly affected, although it would experience some rain.

An average of 20 typhoons batter the Philippines every year.

Haima is the strongest typhoon to hit the Philippines since November 2013, when Super Typhoon Haiyan killed more than 6,000 people and left about 1,000 missing in the eastern Philippines.

An average of 20 typhoons batter the Philippines every year  [Francis R Malasig/EPA]

Source: News Agencies