Federico Dulay, police chief of North Cotabato province, said the explosion was caused by a homemade bomb, fashioned from a mortar round.
"We are not ruling out anything, including a terrorist attack," he told reporters. Other officials said the attack - like many previous bombings - was probably carried out by Philippino Muslims.
The bomb exploded at around 8 pm (1200 GMT) during a festival in Makilala to celebrate the 52nd anniversary of the town's founding.
"They chose this day, when our people were all celebrating, to do this attack," Onofre Respicio, the mayor of Makilala, said.
"Who can do such a thing, kill so many people who are innocent?"
Earlier on Tuesday, another powerful blast ripped through a public market in Tacurong city, around 50 km (30 miles) west of Makilala, wounding four people.
Local army commanders said both attacks were probably carried out by Muslims linked to Jemaah Islamiah (JI), a Southeast Asian group that wants to create an Islamic superstate in parts of southeast Asia and Australia.
Colonel Ruperto Pabustan, army brigade commander in North Cotabato province, said the bombing in Makilala was "a signature JI attack".
Police said both bombs were made from mortar rounds and were detonated using a mobile phone. A previous blast in Tacurong in 2002 was also triggered by a phone.
Abu Sayyaf suspected
Abu Sayyaf, the smallest and most violent of four armed Muslim groups in the Philippines, has been sheltering members of JI in the south. Around 6,000 troops, backed by US advisers, have been trying since August 1 to flush them out.
Last month, security officials warned Abu Sayyaf could launch bomb attacks in key urban centres in the south in retaliation for more offensives.
A spokesman for the country's largest armed Muslim group, the Moro Islamic Liberation Front, which is holding peace talks with Manila, denied any involvement in the attack on Makilala.
"Honestly, we have no role in these bombings," said Eid Kabalu.