Chan didn't have a clean program, touching the ice on one jump while falling on another to score 178.10 in the free skate. That gave him a total score of 275.62 and a place on the podium, just not the one he wanted.
"I love you guys. I'm sorry," Chan said to the camera.
Yuzuru Hanyu of Japan, finished first Friday after also falling twice en route to a 178.64 for 280.09 points. Denis Ten of Kazakhstan won bronze with a total score of 255.10.
Hanyu, a 19-year-old who lives and trains in Toronto with coach Brian Orser, set a world short-program record the previous night of 101.45, making him the first man in history to break the 100-point barrier.
The 23-year-old Chan, from Toronto, trailed Hanyu by four points going into the long program.
Chan was fifth at the 2010 Vancouver Games but has since won the world championships three straight times while mastering the quad jump.
Kevin Reynolds of Coquitlam, B.C., who was hampered by a poor short program, finished 15th with 222.23 points.
Canada has never had an Olympic champion in men's singles, but Canadians have captured four silver and four bronze. The last Canadian Olympic medallist was Jeffrey Buttle who won bronze in Turin in 2006.
Note to readers: This is a corrected story. An earlier version reported that Canada had won four men's skating gold medals.