American Matthew Emmons fired at the wrong target in the men's 50m rifle three-position target event to gift the gold medal to China's Jia Zhanbo.
Emmons was three points ahead as he took his last shot, but got a rare zero for shooting at the target of Christian Planer in the next lane.
Austrian Planer went on to win bronze, while American Michael Anti won silver, Emmons dropping down to eighth spot.
Suggestions that Emmons' rogue shot had helped Planer's score were dismissed.
"Stuff happens," said accountant student Emmons, 23, who was going for his second gold in the Games having won the men's 50m rifle prone.
"That's the Olympics. I shot a cross-fire and didn't deserve the gold medal."
With no score for Emmons on the scoreboard, officials quickly went to the American and examined his rifle.
They were about to order him to shoot again, but noticed that two shots had been
registered on Planer's target.
They ruled Emmons fired at the wrong target and gave him a score of zero for round 10.
"I thought it was a target malfunction, which sometimes happens," said Emmons.
"I didn't think it could be a cross-fire because that almost never happens.
Planer had been in fifth position when he was credited with a final-shot bullseye, his best shot of the finals.
But officials studying replays later determined that Planer had indeed scored a 10.6 on his shot, while Emmons hit an 8.1 on Planer's target.
Zhanbo scored a total of 1264.5, Anti registered 1263.1 with Planer scoring 1262.8 and Emmons 1257.4.
There were no such errors in the final stages of the men's skeet final, which was won by Italian Andrea Benelli.
Finland's Marko Kemppainen snatched silver and the bronze went to Juan Miguel Rodriguez of Cuba after a three-way shoot-off against Nasser Al-Attiya of Qatar and American Shawn Dulohery.