"The rebels are getting desperate and they are no longer choosing their targets. They are now attacking even places of worship."
A woman selling roast pork was killed on the spot while four others, including a soldier and a three-year-old boy, died in a nearby hospital.
Five soldiers were among those wounded, the official said.
Witnesses said the bishop celebrating the mass had just finished reading the gospel and was about to begin a sermon when an explosion took place.
"The explosion was so loud, it was as if the cathedral was about to collapse," one churchgoer told a local radio station.
"It was like loud and frightening thunder."
Archbishop Orlando Quevedo, who conducted the mass, said: "This is not just a crime, this is a sacrilege. Violence does not achieve anything. Let's all pray for the conversion of the bombers."
A police offical said the bomb was made from a mortar shell and was remotely detonated by a mobile phone across the road from the church.
Mohaqher Iqbal, a senior leader of Milf, the largest Muslim separatist group in the mainly Roman Catholic Philippines, denied his group was involved in the attack.
"Who needs a Christian-Muslim conflict?," Iqbal told the Reuters news agency by text message.
"There's no religious conflict in the south. We are fighting for our right of self-determination. We're only defending our people and our communities."
However, rogue members of Milf have been fighting the army since August, when the government ended peace talks with the separatists after the supreme court stopped a deal to expand an existing Muslim autonomous region on the southern island of Mindanao.
Nearly 600 people have been killed since then, many of whom were civilians.
Fighting around the marshlands on central Mindanao has escalated in the last eight weeks, forcing more than 350,000 people to flee their homes and farms, pushing back any chance of resuming the peace talks.