A homemade bomb has ripped through a row of upscale bars and restaurants in a southern Philippine city, killing six people and wounding at least 28 more, police say.

The victims of the blast late on Friday (local time) were mostly medical representatives and guests of a pharmaceutical company who attended a medical conference in one of the restaurants, said Cagayan de Oro police chief Graciano Mijares.

One of the fatalities was a provincial legislator, Roldan Lagbas, 44, who was at an open air bar when hit by shrapnel in the head, Mijares said.

Bomb fragments were recovered as far as 50 metres away from a table thought to have been where the device was placed, Mijares said.

He said an investigation is continuing to determine the motive for the attack and to identify suspects.

City Mayor Oscar Moreno told ABS-CBN television the military and justice department agents were assisting in the investigation.

Cagayan de Oro, about 800km south of Manila, is a relatively peaceful port city in the southern Mindanao region where al Qaeda-linked militants, communist rebels and heavily armed crime gangs operate.