The Spanish ship was thrown against a sea wall in the rough seas near the town of Anglet after leaving Bayonne in southwestern France.
The hull was unable to withstand the power of the waves that pinned it up against the sea wall, and eventually snapped in two, causing diesel fuel to pour out into the surrounding waters.
The prefecture for the Pyrenees-Atlantiques region said efforts were underway to recover the sailors by helicopter but the rescue operation was being hampered by winds of up to 110 kilometres per hour (70 miles per hour).
Officials said a fuel leak had been detected and an emergency plan known as Polmar had been activated to deal with maritime pollution.The ship was not carrying any cargo but contained 127 m3 of oil.
It is believed the ship ran into difficulty when one of its engines failed, meaning it had little chance against the stormy seas.
The prefecture said one of the sailors was injured but provided no details on the extent of injuries.
It said the Luno cargo ship, 100 metres (330 feet) long, had been empty.
Local mayor Jean Espilondo questioned why the boat had been given authorisation to enter the port in bad weather.
"We know that the entry conditions for the port of Bayonne are very difficult," he said.
Weather service Meteo France had earlier put nine regions on France's northern and Atlantic coasts on alert for bad weather.
In Brittany some 25,000 people were without power on Tuesday after high winds brought by Atlantic storm Petra, which was wreaking similar havoc in southwestern England.