The tremor struck late Friday night near Surigao city, in the northeast of Mindanao Island at a relatively shallow depth of 15 km (9.3 mi), the US Geological Survey announced.
A school and a bridge collapsed, many houses were damaged and the power supply in various areas was cut, the officials said.
Flights to Surigao were cancelled as the runway of the local airport is damaged.
Dozens of aftershocks followed the initial quake lasting into Saturday.
Hundreds of residents fled their homes and spent the night outside, according to local authorities.