The epicenter was closest to Tayasan, a coastal town of about 32,000 people flanked by mountains in Negros Oriental province.
The quake, which hit at 11:49 a.m. local time, sent people running, trying to get out of schools, malls and offices.
The temblor destroyed buildings and triggered landslides that buried dozens of houses. At least 29 people were missing, authorities said. Rescuers were using picks and shovels to dig for survivors.
A tsunami alert was briefly issued for the area. The Pacific Tsunami Warning Center did not issue a wider regional warning.
An earlier report said the quake's magnitude was 6.8, but the U.S. Geological Survey says it's 6.7.
The Associated Press contributed to this story.