It happened near Tower Road Beach in Winnetka.
The man, wearing a swim cap and goggles, was pulled from the water by a rescue boat.
He had been swimming with a group and became separated. The other swimmers tried to find him and when they couldn't they called authorities.
"We had wave runners, boats, in the water, we had the Coast Guard all responding, while they were looking for him," said Winnetka Fire Deputy Fire Chief John Ripka. "Fortunately he was spotted from an officer from the shore who was able to alert the boat operator from Glencoe who was able to go over and pick him up."
The swimmer had been in the lake for about an hour and 45 minutes.
He'd been treading water and fighting waves and was tired but didn't require medical attention.