Philippine troops rescued the hostage on Sunday on Basilan island in the southern Mindanao region, a stronghold of the Abu Sayyaf kidnap-for-ransom group, following intensified operations against the militants, authorities said.
"The hostage was able to run from the militants in the course of military operations and our troops rescued him with the help of local connections," military spokeswoman Captain Jo-Ann Petinglay told AFP.
"We have been conducting continuous operations against (the militants) involving airstrikes. The group was under pressure."
He and five and other crewmen were abducted in November from a Vietnamese cargo vessel sailing less than 20 kilometres (12 miles) from Basilan.
More From This Section
Militants beheaded two of the sailors last month, prompting President Rodrigo Duterte to threaten to eat the militants alive in retaliation.
Duterte often uses extreme language, when talking about Islamic militants.
One Vietnamese crewman is still in the hands of the Abu Sayyaf following the rescue of a sailor in June and the death of another during a gunbattle in July, Petinglay said.
Abu Sayyaf, originally a loose network of militants formed in the 1990s with seed money from Osama bin Laden's Al-Qaeda network, has splintered into factions, with some continuing to engage in banditry and kidnappings.
The militants continue to occupy parts of the southern city despite a US-backed military offensive there that has claimed more than 700 lives and displaced nearly 400,000 people.
The Abu Sayyaf is known to behead its hostages unless ransom payments are made.
German national Jurgen Kantner, 70, was beheaded in February after the kidnappers' demand for 30 million pesos (USD 600,000) was not met.
Last year, the group beheaded two Canadian hostages.