A police officer and lifeguard fished the body of a 25-year-old Spanish man out of the river where he had been bathing in the Letten neighbourhood, Zurich city police said.
Police were alerted around 8.40pm by witnesses who had seen a body floating in the river.
When officers arrived they discovered a second body in the water new a bridge in Letten.
The 25-year-old Turk was already dead.
The cause of the men's deaths was not immediately known.
Persistent hot weather has drawn throngs of people to lakes and rivers across Switzerland seeking ways to cool off, but swimming is not without risks.
Elsewhere, a 33-year-old German man residing in Switzerland and his eight-year-old son drowned on Sunday night in the Wallensee, near Walenstadt in the canton of Saint Gallen, police said on Monday.
The incident occurred around 7pm at the mouth of the Seez River when it appears that the father attempted to rescue the boy after he was carried away by a strong current, cantonal police said.
The boy's mother and younger brother were in shallower water nearby.
Police divers found the lifeless body of the father at a depth of 11 metres at around 9pm, while they retrieved the boy's body at a depth of nine metres two hours later.
The incident follows the drowning of two people in Switzerland last Thursday and Friday.
MeteoSwiss has maintained its heatwave alert for Monday and Tuesday in all major cities and urban areas.
Thunderstorms, heavy rain and winds up to 111 kilometres an hour briefly cooled off several regions from Neuchâtel to Saint Gallen on Sunday night after unseasonably hot conditions at the weekend.
The temperature soared to close to 38C in Geneva on Sunday and lingered in the mid-30s across the country.
MeteoSwiss, the national weather office, forecasts temperatures up to 35C in Sion in the canton of Valais on Monday, with highs of 34C expected in Geneva and Lugano in the canton of Ticino.
On Tuesday it will be generally warmer still across the country, with highs of 38C anticipated in Basel, 36C in Geneva and 35C in Zurich.
The heatwave is expected to end on Wednesday in most parts of the country, with rain forecast across northern and central regions.