Swiss skier clinches third podium of the season from three races to move level with overall Crystal Globe leader Alexis Pinturault.
The 23-year-old looked calm and comfortable as the last man to go on the second run, and clocked a total time of 2:08.42.
Odermatt had led after the first run, clocking 1:04.03, nearly two full tenths ahead of Norway's Leif Kristian Nestvold-Haugen.
But Nestvold-Haugen lost time, much like many of the late runners on the second run, in the tricky middle part of the course and finished over nine-tenths down on the Swiss.
It was Odermatt's third podium finish from three races this season and the first giant slalom win for a men's Swiss skier since Carlo Janka in 2011.
American Tommy Ford was 0.73 seconds behind Odermatt to take second place.
For a while it looked like Saturday's winner Filip Zubcic of Croatia might repeat his comeback feat, as Zubcic – 21st after the first run – put in the quickest second run time of the entire field and held the total lead until Ford overtook him four skiers from the end.
"It's really emotional for me today," Odermatt said.
"There was big pressure for me today, red bib, first time leading after the first run, I'm really proud.
"I just tried to focus on trying to show my best skiing, it wasn't easy - it was really flat and I just had to push especially at the bottom."