A search of Ullswater was carried out by divers
The three, aged 15, 17 and 21 and from the West Midlands, were among a group enjoying a swim when one of them got out of their depth.
Another 15-year-old boy had to be pulled to safety during the incident at about 1600 BST on Saturday.
Police said conditions were reasonably calm, but there were deep areas and the water was very cold.
They said they were contacting the men's families before releasing any more information.
A Cumbria Police spokesman said: "Police have now recovered the three bodies of the males who went missing in Ullswater lake.
"We are in the process of contacting the deceased males' families and updating them regarding the circumstances of the drowning.
"No details will be released until all family members have been informed regarding this tragic incident."
Members of the public and a lake warden went to help when the alarm was raised, and managed to rescue the 15-year-old boy.
He was taken to hospital, where his injuries were not thought to be life-threatening.
Searches by the coastguard, a helicopter and police and civilian divers were carried out overnight.
Police said the boys were part of a group staying in Glenridding, a village overlooking Ullswater.
Insp Sean Murphy, from Cumbria Police, said: "I think the lake was reasonably calm.
"Unfortunately it does have deep areas and shelving and the water is extremely cold so it's all speculation at the moment but I am assuming that someone has gone too deep and they have got cold and been unable to swim."