The man was plucked from the water and was taken to Cozumel to be checked by doctors.
Carnival spokeswoman AnnMarie Matthews said the 33-year-old man didn't have any safety device on and that they "can only surmise that he was likely treading water the entire time."
He went overboard from the Norwegian Getaway and had been drifting since at least Saturday. The U.S. Coast Guard suspended a search for him Saturday night after looking for hours.
On Sunday, crew and guests aboard another cruise ship, the Carnival Glory, saw him in the water. A rescued boat was dispatched, and the man was saved.
"I would like to send a special thanks to those who threw the life ring and all those who called the bridge over the emergency line," the captain said in a statement. "You are the ones who saved this person's life."
A photo shows those who rescued the man, and cell phone video captured passengers cheering as he was brought on board.
Carnival Cruise Line President Christine Duffy called the rescue "nothing short of miraculous."
The Getaway returned to Miami from an eight-day cruise on Sunday. The Glory continued on to Cozumel in the midst of a seven-day cruise.
(The Associated Press contributed to this report)
* More local news
* Send us a news tip
* Download the abc7NY app for breaking news alerts