In an unusually crowded final with nine skaters, the 21-year-old took over after defending Olympic champion Charles Hamelin fell out of the lead early and incurred a penalty. Lim finished first in 2:10.485.
Sjinkie Knegt of the Netherlands took silver, finishing 0.70 seconds behind Lim, while Olympic Athlete from Russia Semen Elistratov won the bronze.
Hamelin, a pre-event favourite, was looking to become the first short track speed skater to win a gold medal at three different Olympic Games but the 33-year-old Canadian, who had originally finished sixth, was given a penalty for impeding.
Speaking to reporters after his disappointing performance, Hamelin said it was difficult for him to tell whether he had deserved the penalty.
News that makes sense
Your trusted source for staying up-to-date with the world around you. Get free daily news updates and analysis, straight to your inbox.
"I made a mistake," he said. "It might have cost me a better position and even the race. I ended up at the back of the pack. In a race with nine skaters, you never want to end up in the back."
(Reporting by Gabrielle Tétrault-Farber; Editing by Clare Fallon)
