A town hall was damaged in Magsaysay when the quake hit on Tuesday morning. [Mirror]

A powerful 6.6 magnitude earthquake has killed at least two people, including a teenage schoolboy, and left almost 50 others injured.

The deadly tremor damaged buildings and sent terrified residents running into the streets as it shook homes, schools and offices in the southern Philippines.

As residents gathered in open spaces, they were urged to remain outside the buildings because strong aftershocks were expected.

Officials confirmed a 66-year-old man died in Koronadal City and a 15-year-old high school student died in Magsaysay as the quake caused panic, according to local news reports.

Both were killed by falling debris.

The quake hit 16 miles north-east of Tulunan, on the island of Mindanao, just after 9am local time on Tuesday.

It was in the same area as a deadly tremor that hit earlier this month.

In Tuesday's disaster, buildings partially collapsed, including a town hall in Magsaysay, and there were power cuts in places including General Santos city.

Injured office workers were carried by rescuers and witnesses reported seeing people fainting after they fled buildings that shook or swayed during the quake.

The Red Cross sent teams to help some of the injured victims and those who have been displaced by the tremor.

The initial magnitude was estimated to be 6.7, but it was later revised to 6.6.

Powerful earthquakes which rattle buildings and cause damage are common in the Philippines, which sits on the Pacific Ring of Fire.

A 6.4 magnitude tremor killed at least five people and injured dozens when it struck central Mindanao on October 16.

On April 22, a 6.1 magnitude quake killed at least 18 people and left more than 250 injured on the island of Luzon.