36-year-old Kolaraveettil Biju from Kerala, who worked as an operations manager for a garment company in Kuwait, was abducted by the militants in Sulu province in the Philippines in June 2011 while visiting his Filipino wife's family in Patikul.
He escaped from his captors and was found by residents of a Parang village, which he did not name, before dawn today, Senior Superintendent Antonio Freyra, Sulu police chief, said.
"The kidnappers were resting. They had been fasting (for Ramzan) and they got tired and fell asleep, so he slipped away," Freyra was quoted as saying by the media.
Biju, who said he lost 20 kilogram in captivity, "is now in the custody of the Sulu provincial police office and is undergoing medical check up and debriefing," Freyra said.
The Indian national appeared to be in good health, the Sulu police chief was quoted as saying.
In March, the Sulu police said it got information that Biju was executed by the Abu Sayyaf because his family could not pay ransom, according to local media.
The kidnappers had demanded about 300,000 pesos (USD 7,100) in ransom, but his family refused to pay. He said he was not harmed because he is a Muslim.
The Abu Sayyaf is known for kidnappings, beheadings and bombings, and is on the US list of terrorist groups.
The group is believed to be currently holding Australian, Malaysian and Japanese nationals in their captivity.
In Kerala, Biju's father Narayanan, an ex-serviceman, told PTI: "I could not believe when I heard my son's voice after so many months. Biju telephoned us at about 2.45 am. Thank god we are very very happy."