Alin George Moldoveanu was a surprise winner in the men's 10m air rifle final at the Royal Artillery Barracks.
The Romanian, 29, recorded a score of 702.1 to beat world number one Niccolo Campriani by 0.6 after regaining the lead in round nine of 10.
India's Gagan Narang won the Olympic bronze medal with a total of 701.1.
Analysis from BBC Sport commentator David Oates
"What a thrilling competition and what a twist in the tale. Campriani was the favourite but slips on eight and nine cost him. At 24, he still has time on his side. Moldoveanu was the surprise package, but it was a deserved gold after he held his nerve so admirably."
Italian Campriani and Moldoveanu, who is ranked outside the world's top 25, had both set Olympic record-equalling scores of 599 in qualification.
Moldoveanu had led through the first five rounds before a costly 9.9 in the sixth allowed Campriani to edge ahead. Yet back-to-back scores in the nines from the Italian handed the initiative back to the Romanian.
On the third day of shooting competition at the Woolwich venue, Peter Hellenbrand of the Netherlands shot the first maximum but was forced to settle for fifth.
British marksman James Huckle had earlier missed out on a place in the final, his total of 593 out of 600 not enough to secure a top-eight finish.
Narang's bronze provided some consolation for the hundreds of Indian supporters in the rifle range following defending Olympic champion Abhinav Bindra's failure to progress.
Bindra, who became India's first individual Olympic gold medallist in Beijing in 2008, finished 16th in qualification.