Goggia, in bib number five, timed 1min 39.22sec for a first downhill title in the women's blue riband event.
The 25-year-old came in 0.09sec ahead of Norway's giant slalom silver medallist Ragnhild Mowinckel, with Vonn a further 0.42sec adrift.
Goggia made a mistake on the upper part of the polished 2.8km-long Jeongseon course, but produced a magnificent gliding mid-section and strong bottom third.
It reaffirmed the fine form she has shown on the World Cup circuit this season, with two victories and two second places in the downhill, and also second and third placings in the super-G.
- Italian women score World Cup triple in downhill skiing
- Five amazing Italian ski resorts that aren't in the Alps
- Italian breaks speed skiing world record
Goggia celebrates her gold. Photo: Martin Bernetti/AFP
Vonn made few errors in her descent, but it was just not enough, Mowinckel providing a surprise factor with her second place after starting 19. After the race Vonn, 33, confirmed that it would be her last Olympic downhill and said: “I gave it all today, skied a great race. Sofia just skied better than I did.”
The American has said her friendship with Goggia is based on them both being “100 percent crazy”.
The pair embraced at the finish area, Vonn allowing herself a slight look skywards, a sigh and shrug of the shoulders.
A number of contenders struggled down the unforgiving course where the slightest overedge or too much air off the three main jumps left racers straining to make up lost tenths of seconds.
Switzerland's Lara Gut, just a year on from left knee surgery, missed a gate, as did her teammate Jasmine Flury, both racers seeking an extra push and paying the price.
Goggia pictured during the event. Photo: Fabrice Coffrini/AFP
American Alice McKennis, Italy's Nadia Fanchini and Federica Brignone crashed out in spectacular fashion after all three led the first three intermediate times as the sun-kissed course offered hope for the late runners.
The Austrian team also disappointed, their highest ranked skier Ramona Siebenhofer in 10th, a massive 1.76sec off the pace.