American Trey Hardee retained his world decathlon title after overhauling compatriot Ashton Eaton with third place in the discus.
Hardee, who had been trailing Eaton after the first day of competition, finished with 8,607 points to Eaton's 8,505.
Cuban Leonel Saurez took the bronze with 8,501.
Eaton saw his chances of victory slip away after struggling in the discus, pole vault and javelin.
By the final event, the 1,500 metres, Hardee had enough of a cushion to cruise home in 14th place and still win the gold medal.
Suarez, who also took bronze at the 2008 Beijing Olympics, threatened an upset by winning the javelin to move up to second, but dropped back to third after finishing fourth in the 1,500.