Haaser, who won silver in last week's super-G behind Odermatt, timed two minutes and 39.71 seconds down the Schneekristall piste in overcast conditions.
The Swiss pair of Thomas Tumler and Loic Meillard rounded out the podium, at 0.23 and 0.58 seconds respectively.
Norway's Timon Haugan, quickest down the first run, had headed into the second and decisive leg of the GS with a vital 0.24 seconds advantage over defending champ Odermatt.
But it was not to be for either of them.
"The first run I was pretty accurate, the second I really tried to push," said Odermatt.
"I think even with a perfect run it would have been very tight for me to win. Fourth place is never nice."
Germany's Anton Grammel made the early running, laying down a barn-storming run after finishing 22nd fastest in the first leg.
The lead then passed in quick succession from Slovenia's Zan Kranjec and Norway's Atle Lie McGrath, and then France's Thibaud Favrot and Norway's 2019 GS champion Henrik Kristoffersen.
The partisan, flag-waving, airhorn-blowing, 15,000-strong crowd packed in around the finish area erupted when home favourite Marco Schwarz came down to take the provisional lead.
But that was short-lived as 35-year-old Swiss racer Tumler, who notched up his maiden World Cup victory just this season, clocked 2:39.94.
That left the top six to come.
Italy's Luca De Aliprandini made a mistake to fade away from a podium placing before the crowd went wild for Haaser, who had impressed in the super-G, raced a day after his sister Ricarda suffered a season-ending knee injury.
The Austrian regained his footing after an early mistake to shoot into the lead and pile the pressure on the four remaining racers.
There was drama as Norway's Alexander Steen Olsen, second in the World Cup GS standings behind Odermatt, threatened but went into the red and finally skied out.
There was just the top three from the first leg to come.
Odermatt looked in impressive gliding form, but his skis ran away from him, a late turn losing him valuable seconds as he came down behind Haaser and Tumler.
Next up was Meillard, boasting a 0.60-second advantage. The 28-year-old consolidated that lead on the first two intermediaries, but then lost time, finishing 0.07 seconds faster than Odermatt.
All eyes turned to the start hut and the figure of Haugan.
And the pressure told, the Norwegian making a massive mistake three gates in that saw his -0.62 second deficit change to +0.11 second surplus.
But he battled back, only to lose costly tenths of seconds in the final descent to finally finish seventh, a full second off Haaser.
Norway-born Lucas Pinheiro Braathen's hopes of securing a first-ever world medal for Brazil, after a fall-out with the Norwegian federation saw him switch allegiance to his mother's homeland, finished 14th, 1.44 seconds off Haaser's winning time.
"It was a tough day," said Pinheiro Braathen. "I just was not on the level, I never felt comfortable on my skis.
"It has been 'no can do' at these world champs."