Russia's Yuriy Borzakovskiy landed a superb Olympic 800m victory from South Africa's Mbulaeni Mulaudzi.
Borzakovskiy won the 800m in 1:44.46
Borzakovskiy, 23, burst from a long way back to clock one minute 44.45 seconds to pip the fast-finishing Commonwealth champion on the line.
Mulaudzi edged out Denmark's world record holder Wilson Kipketer, who ran 1:44.65 in third.
Algeria's Djabir Said Guerni led at halfway in 51.84 before Kenya's Wilfred Bungei took over to set up the finish.
Bungei was passed by three-time world champion Kipketer on the final bend but Borzakovskiy, who won silver at last year's world championships behind Guerni, surged from fifth place to outpace Kipketer and Mulaudzi on the line.
"I am very happy winning this medal. I dedicate it to my
wife and my child," said Borzakovskiy, the former European champion, who was sixth in the 800m four years ago.
He is the first Russian to win the Olympic men's 800m title.
Mulaudzi said: "Everything went to plan. This is my first Olympics so I'm very happy with the silver."
Meanwhile, Guerni faded badly to finish seventh.