There were no immediate reports of damage or injuries, the state-run Philippines News Agency (PNA) reported.
The temblor hit at 12:37 p.m. local time, 149 kilometers (93 miles) south of Davao, the USGS said.
It struck at a depth of about 98 kilometers. No tsunami warning or watch has been issued.