The Richmond, B.C., native finished in one hour 23 minutes six seconds while fellow Canadian Inaki Gomez was second in 1:24:25. Brazil's Caio Bonfim was third.
The weather conditions proved challenging for a second straight day.
Mexico's Maria Gonzalez collapsed at the finish line after winning the women's crown in a Games-record time of 1:29:24.
She was treated by medical staff on-site. Officials said she was taken to hospital for further observation.
Five runners dropped out of Saturday's women's marathon, which was held in similar weather.
The expected high for Sunday was 31 C but the humidity could make that feel more like 40.
The top Canadian woman was Olympian Rachel Seaman of Peterborough, Ont., who finished sixth in 1:32:49. Katelynn Ramage of Nanaimo, B.C., was 12th.
Brazil's Erica de Sena was second in 1:30:03 while Ecuador's Paola Perez collected bronze in 1:31:53.