The two men, who were wearing lifejackets, were thrown into the water in the incident between Fortrose and Avoch.
Kessock Lifeboat was launched at 12:30 and reached the pair seven minutes later.
The men were taken aboard the lifeboat before being airlifted to hospital.
It was thought the men may have been in the water for about 35 minutes before the alarm was raised.
The North Kessock-based lifeboat crew found the men had managed to climb back into their water-swamped boat. They were suffering from the effects of hypothermia.
A coastguard rescue helicopter and Inverness Coastguard Team were also involved in the rescue.
Volunteer helmsman Stan MacRae said "The dingy started taking on water because of the conditions.
"The two men found they couldn't bail it out fast enough, which led to the capsize.
"When we assessed their condition it was obvious they needed further medical attention and the best thing to do was to get them winched into the helicopter and away to hospital as fast as possible."
The men were aboard the helicopter by 12:56 and flown to Raigmore Hospital in Inverness.
Kessock Lifeboat crew were able to save the sailing boat and tow it to Fortrose.
Two sailors had to be rescued after their small wooden sailing dingy took on water before it capsized in high winds and 1.5m (4.11ft) waves.