The man was found dead clinging to a flimsy vessel adrift at sea off the Spanish-governed enclave of Ceuta, bordering Morocco, a Spanish government spokesman in Ceuta said.
Lifeguards picked up 157 others from various vessels in the Mediterranean strait between Morocco and Spain, and police arrested a further 19 people who landed on the Canary Islands in the Atlantic, officials said.
Helicopters and rescue boats were patrolling off Ceuta after one boat carrying dozens of migrants capsized.
Some 30 people from that boat were rescued while about a dozen others were missing, the Spanish official in Ceuta said. It was not clear whether the dead man was linked to that group.
Scores of others were found in other makeshift vessels elsewhere in the Mediterranean strait separating mainland Spain from Morocco, including off the coasts of Granada province and Almeria, areas popular with holidaymakers.
Those rescued were all "apparently in a good state of health", a coast guard spokeswoman said.
To the west in the Atlantic archipelago of the Canaries, police detained 19 migrants, including six teenagers and a girl of 11, who had landed on the island of La Graciosa.
They "displayed symptoms of exhaustion", a police spokesman said, adding that the force was continuing to search for other migrants in the area.
Thousands of undocumented migrants from Africa try to cross the 15-kilometre (nine-mile) strait from Morocco into Spain on makeshift boats and inflatable dinghies each year.
The Spanish Government has warned that fighting in the Sahel region of northern Africa has increased the flow of migrants.