Coast guard chief Youssef al-Katem said at least 63 people survived. A passenger on board the boat calling from his cell phone was the first to alert officials that the ship was listing, he said.
Survivor Khalil Mirza of Bahrain told The Associated Press that he made that call. He said the listing began while the craft was making a left turn out of the harbor.
"People were scared in the water," he said. "They were fighting with each other and screaming."
Television stations early Friday put the death toll at 54, but that higher figure couldn't immediately be confirmed with authorities.
The official Bahrain News Agency said the al-Dana was on an evening cruise that was to last several hours. It overturned less than a mile off the coast, it said. Television footage showed the boat capsized but not sunk, with rescue workers walking on its brown hull.
U.S. helicopters and divers joined the rescue operation launched by Bahrain's coast guard. Bahrain, a tiny island nation on the western side of the Persian Gulf, is home to the Navy's 5th Fleet.
Rescue teams brought bodies covered with white sheets to shore, and hospital workers hurried them to waiting ambulances. Scores of officials and relatives waited on the dock watching small rescue boats with flashing blue lights bring more bodies and survivors.
Television stations showed what they called a file photo of the al-Dana, which appeared to be 60 to 70 feet long with two decks.
There was no indication of what caused the vessel to overturn in what appeared to be ideal weather conditions. The government dismissed terrorism as a cause, and the news agency quoted Interior Ministry spokesman Maj. Mohammed Ben Dayna calling it an accident.
"It's too early to say what caused the accident," Ben Dayna said.
Al-Katem said an investigation was underway. The boat's owners said overloading could have caused the boat to capsize, according to Bahrain television.
The passengers were thought to be a mix of Bahrainis, nationals of other Gulf Arab nations and Westerners. Health Minister Nada Haffadh told al-Arabiya television that survivors who arrived at hospitals included nationals of India, South Africa, Singapore and Britain.
Information Minister Mohammed Abul-Ghafar, interviewed on al-Arabiya television, said the passengers included 25 Britons, 20 Filipinos, 10 South Africans and 10 Egyptians.
Haffadh said 24 people were hospitalized and that other survivors had been released upon arrival on shore. Television footage showed survivors, appearing to be in shock and their hair still wet, squatting on the floor of a hospital. Many of them covered themselves with blankets. One male survivor was shown being treated for cuts to the head.
Survivors, some with blood streaming down their faces, hugged each other. Several wept uncontrollably as friends and relatives tried to calm them. Some survivors needed assistance as they disembarked from a rescue boat that brought them to shore.
Interior Minister Sheik Al Kahlifa said most of the passengers were employees of a Bahrain-based company.
Al-Katem said there were 150 guests at a dinner party aboard. The guests, he said, ate dinner while the vessel was still docked and that up to 20 of them disembarked before it sailed.
Cmdr. Jeff Breslau, a spokesman for the U.S. Navy, told The Associated Press that the U.S. military aided the rescue effort. The Navy has had a presence in Bahrain for more than 50 years.
"We're sending divers, small boats and a helicopter," Breslau said.
A pair of helicopters could be seen from the shore flying low over the site of the incident. Rescue teams on small boats could also be seen using flashlights to help them search for survivors.
The capsizing of the ship came about two months after an Egyptian ferry sank in the Red Sea, killing about 1,000 people. The vessel was en route from the Saudi port of Dubah to the Egyptian port of Safaga when it went down before dawn about 60 miles off the Egyptian coast.
Bahrain is an oil-exporting and refining archipelago of 688,000 off the coast of Saudi Arabia