Two fishermen have been rescued by a cruise ship after being stranded for 20 days at sea.

Royal Caribbean's Empress of the Seas found them after a "miracle" chance encounter en route to Jamaica.

The fishermen were pulled off course by strong winds, while a storm had also diverted the cruise ship from its planned route, Royal Caribbean Chief Meteorologist James Van Fleet said.

Both fishermen later disembarked in Jamaica to receive medical attention.

In a statement on Twitter, Mr Van Fleet said the fishermen had left Puerto Limón in Costa Rica on 1 December and fell asleep while soaking their nets - a lengthy process to make nets softer and easier to cast.

"Winds picked up and when they woke up, they were blown way off where their gear had been," said Mr Van Fleet.

The fishermen then reportedly ran out of fuel after trying to find their nets and began to run adrift.

While at sea, they only had enough food and water for seven days.

Mr Van Fleet said the cruise ship was supposed to be many miles away in Cienfuegos, Cuba, at the time.

It had been forced to change course to Ocho Rios in Jamaica after a "massive storm".

"You can't help but think there was a greater plan in all of this," said Mr Van Fleet.

After staff boarded the fishing boat in Friday's rescue, "one of the fishermen could no longer walk and our crew carried him to the tender and carried him on board", said Mr Van Fleet.

The two were later fed and clothed and seen by medical staff on the Empress of the Seas.

"Some $300 (£236)" was also raised by the crew to help them buy food and clothes after the fishermen disembarked in Jamaica.

"I've already seen a Christmas miracle - 20 days at sea should tell you everything about the odds of them being found alive," said Mr Van Fleet.