The 27-year-old Japanese, who beat top seed and world No.2 Casper Ruud in the quarter-finals, was impressive in defence and his counter-punching style eventually wore down his higher ranked opponent in just under two hours at the Seoul Olympic Park Tennis Center.
The unseeded Nishioka, appearing in his second championship match this year after reaching the Washington final in August, started the brighter and found his rythym early to claim the first set.
The second set saw momentum change as Shapavolov found his range from the backcourt to take a 3-1 lead. But Nishioka rallied to take the set into a tiebreak where he held firm to win his first tournament since his maiden title at the Shenzen Open in 2018 - where he also beat Shapovalov in their only previous meeting.
The ATP Tour returned to Seoul for the first time since 1996 after the city was awarded a single-year licence to stage the Korean Open.