Rescuers from Salvamento Maritimo were called out to a boat in trouble off the island and reached the vessel just after midnight, a spokesman said.
He said the crew had found 45 survivors -- 42 men, two women and a child -- and three bodies.
"All those rescued were Moroccan, with the exception of one sub-Saharan African man," he told AFP.
The 112 emergency services said five of those on board were in bad condition, adding that six people had been taken to hospital.
In the first seven months of the year, 9,589 migrants survived the extremely dangerous sea journey from the coast of Africa to the Spanish islands in the Atlantic, compared with 7,531 a year earlier, interior ministry figures correct to July 31 show.
In the same period, sea arrivals to Spain's Balearic Isles in the Balearic Isles fell to 5,284 from 7,292 a year earlier.
Monday's rescue comes after a frenetic weekend for Salvamento Maritimo which pulled nearly 600 people to safety in waters off the Atlantic archipelago.
Migrant arrivals on the Atlantic archipelago have surged since late 2019 after increased patrols along Europe's southern coast dramatically reduced Mediterranean crossings.
At its shortest, the route from the Moroccan coast is around 100 kilometres (60 miles), but migrants often come from much further afield, with the distance from Mauritania more than 1,000 kilometres as the crow flies.
The Atlantic route is notoriously dangerous because of strong currents, with migrants often setting sail in overcrowded ramshackle boats which are extremely unsafe.