Germany's Robert Harting added the Olympic discus gold to his world title after a thrilling final.
Harting was lying second behind Iran's Ehsan Hadadi going into the penultimate round, but threw 68.27m to beat Hadadi's 68.18 opening-round effort.
Defending champion Gerd Kanter of Estonia was third with 68.03, also achieved in the fifth round.
Britain's Lawrence Okoye finished in 12th with 61.03 - well below his season's best of 68.24.
Hurdling Harting celebrates discus gold
The 20-year-old former rugby player had deferred a place at Oxford to study law to concentrate on athletics and was appearing in his first major championship in his home town.
Harting's win saw him extend his unbeaten record, which stretches back to August 2010 and become the first German to win the event since Lars Riedel in Atlanta in 1996.
The German celebrated in style by ripping his top off and he embarked on a lap of honour draped in the German flag before leaping over the barriers set out for the 100m hurdles final to cheers from the stands.
The silver for Hadadi, who was third at last year's world championships in Daegu, gave Iran their first Olympic athletics medal.
Kanter's effort denied Lithuania's two-time Olympic champion Virgilijus Alekna a medal.