Philippine President Rodrigo Duterte on Thursday formally apologised over the deaths of eight Hong Kong people in a 2010 Manila hostage crisis that soured ties with the city.
The incident happened under previous president Benigno Aquino who had rejected Hong Kong's demands for an apology because he said the hijacker caused the crisis.
However Duterte said an apology to "the Chinese government and the people of China" was "only right" and necessary.
"From the bottom of my heart as the president of the Republic of the Philippines and in behalf of the people of the Philippines, may I apologise formally to you now," Duterte said in a speech before the Filipino community in Hong Kong.
"We are sorry that the incident happened and as humanly possible, I would like to make this guarantee also that it will never, never happen again."
Hong Kong had been infuriated by the Philippine government's response to the incident, in which a disgraced former police officer hijacked a tour bus in protest at his sacking.
Day-long negotiations to release the hostages trapped on the bus failed and, with the drama being broadcast live around the world, Philippine security forces bungled a rescue attempt.
A deeply emotional row was resolved in 2014 after the Philippine government expressed "its most sorrowful regret and profound sympathy" but avoided a formal apology.
An apology was instead issued by the Manila city government.
Duterte was elected in mid-2016 and had sought to improve his nation's relations with China despite a territorial row over the South China Sea as he courted investments and trade from Beijing.
He visited Hong Kong after participating in the Boao Forum in Hainan. Duterte's apology came as he declared his country's "love" for China.
"I hope this would go a long way to really assuage the feeling of the Chinese people and government," Duterte added. (AFP)