The man, a resident of the region from Bulgaria, was swimming on Monday night with a group of young people at La Maladaire beach when he suddenly sank under the water around 7pm, police said in a news release.
Emergency rescue officials responded to a call from help in two life-saving boats and conducted a search for the man, the release said.
Divers, members of the lake squad of the Vaud gendarmerie and a Rega emergency rescue crew in a helicopter joined in the search.
Divers from Le Doyen, a local association of rescue specialists, were able to find the man and fish him out of the water, police said.
Under the care of a doctor and ambulance attendants he was rushed in critical condition to the Lausanne university hospital (CHUV), where he died in the night of Monday to Tuesday.
The 24heures newspaper reported online that the conditions did not look safe for swimming because the water was “choppy”.
Witnesses said rescue official arrived about 10 minutes after the call was made to emergency services.
An investigation has been launched into the exacts circumstances of the drowning.
The incident came after a 70-year-old Swiss man accidentally fell from a sailboat on Saturday afternoon during a regatta in Lake Geneva southwest of Montreux.
Emergency services staff searched the area for several hours after the accident was reported around 3.30pm, Vaud police said.
The man is presumed to have drowned.