The boat was one of 17 intercepted in the islands' waters in the past 24 hours. About 450 people were rescued in the other boats, but one died later.
The Canary Islands emergency service said the Lanzarote boat crashed into pier rocks and overturned in the Orzola area on the north of the island late Tuesday.
Video images showed rescue workers and residents pulling young men in T-shirts from the water in the dark and other migrants sitting on the rocks.
The emergency services said eight bodies from the boat were found and 28 people rescued. They said search operations were continuing for one person believed missing.
In the other incidents, the national rescue service and Civil Guard rescued some 450 people, including women and children, arriving in 16 boats near Gran Canaria island. One person died.
Anselmo Pestana, the central government's representative on the islands, said the arrivals “generated difficulties but obviously none more painful than to see bodies, people arriving on our coasts dead.”
He said that many possibly didn't know how to swim, and thanked residents for helping in the rescue.
Officials said the migrants were from northwest African and sub-Saharan countries. Many had set sail from Morocco several days ago.
Many of the rescued were taken to the Arguineguín dock on the southwestern coast of Gran Canaria, where nearly 600 people of different origins are being kept, some in tents. Numbers on the dock rose to more than 2,000 recently.
Spain has promised to set up more tents to accommodate the people arriving.
More than 19,000 people fleeing poverty, violence or other circumstances have arrived in Spain’s Canary Islands this year, a 1,000% increase from the same period in 2019. More than 500 have died in the attempt. Around half of the arrivals — and most of the deaths — have been in the past 30 days, a spike that has strained resources on the archipelago.