Pyeongchang, after failing in two previous attempts to win the sporting spectacle, beat the Bavarian capital and France's Annecy in the first round of a secret ballot of the International Olympic Committee.
The announcement was made in Durban, South Africa, by International Olympic Committee president, Jacques Rogge.
Needing 48 votes for victory, Pyeongchang received 63 of the 95 votes cast. Munich received 25 and Annecy seven, the Associated Press reported.
South Korean President Lee Myung-Bak was first on the podium to give his country's final pitch. He said South Korea's bid was about “friendship, hard work and fair play.”
"I ask you for your support today so that we can finally make the Winter Olympics and Paralympics dream come true," he said.
"I am a fellow sportsman so this is why I can appreciate, more than anyone, what the IOC and Olympic Movement have given Korea. Now we want to give back."
The loss for Munich came despite a vigorous bid in which Chancellor Angela Merkel wrote a personal letter appealing to the committee on Munich's behalf, saying that the Olympic bid was a "national affair" for the Germans "of significant importance."
She also visited Durban prior to the vote, accompanied by President Christian Wulff, former Olympic figure skater Kati Witt and footballing legend Franz Beckenbauer.
"Sure, we're very disappointed, especially after our presentation, which many IOC delegates congratulated us about," said tearful two-time Olympic gold medalist Witt, who had been the face of Munich's bid. "Perhaps in reality, the decision had already been taken. Right now, I am lost for words."
While it was too soon to say if the Bavarian city will now bid to host the 2022 winter games, Munich mayor Christian Ude was quick to offer good wishes to the victors.
"I congratulate Pyeongchang and wish you every success in hosting the Olympic and Paralympic Winter Games in 2018," he said. "Of course, I am sad that the decision has not now fallen in our favour, but I am convinced that we submitted a strong application."
The Koreans had led in each of the first rounds in the votes for the 2010 and 2014 Games but then lost in the final ballots to Vancouver, Canada and Sochi in Russia.
Pyeongchang, whose bid slogan was "New Horizons," campaigned on the theme that it deserved to win on a third try and will spread the Olympics to a lucrative new market in Asia and become a hub for winter sports in the region.
This is the fifth time a German city has been rejected as hosts of an Olympic games.
Bids from Berlin and Leipzig were rejected by the IOC as hosts for the summer games of 2000 and 2012 respectively, while Garmisch-Partenkirchen, in 1960, and Berchtesgaden, in 1992, were also rejected as candidate cities for winter games.
The failed Munich bid has not come cheap. The city is still €6.5 million short of the €33 million it cost to submit the application and the shortfall will probably have to come from the public purse.