Rescue services said they airlifted a man who fell into water at La Guancha in the north of the island, but that he was later pronounced dead at hospital.
They said another man died after he was found floating near a beach at El Cabezo in the south, with lifeguards and medical staff unable to resuscitate him.
At Puerto de la Cruz, a holiday resort in northern Tenerife, one woman died of a heart attack and another 10 people were swept out to sea. Three of those were seriously injured and taken to hospital.
A local waiter, who gave his name only as Pedro, told the Reuters news agency that he jumped into the water in an attempt to save people being swept out.
"As soon as I saw a man waving at me I took my clothes off, jumped to the water and I managed to grab three of them and save them. I couldn't save the woman because she passed away at that moment," he said.
Eyewitness Carlos said he warned people taking photos to move away from the waves but "they did not pay attention".
Officials say the Canary Islands, the Spanish archipelago Tenerife belongs to, are on alert for coastal hazards.
They warned sea conditions are expected to worsen with swells reaching two-to-four metres, and tourists and locals should exercise "extreme caution".