The lively forward secured the accolade for the third time in his career, having previously won it in 2013 and 2014 during his time with Hamburg and Bayer Leverkusen in the German Bundesliga.
The 25-year-old, in fine form in recent weeks with four goals in as many games prior to Saturday's defeat at Manchester City, scored 168 points in a vote by football reporters and KFA coaches to take the honour.
He is now tied with Swansea City midfielder Ki Sung-yueng for the highest amount of times one player has won the award.
Son played in nine of 13 international matches for South Korea this year, scoring three goals, and played a key role in helping his nation qualify for the 2018 FIFA World Cup in Russia.
He also became the highest-scoring Asian player in Premier League history with his winner against Crystal Palace earlier this season and last month was named International Player of the Year by the Asian Football Confederation for the second time in three years.