Han speelde in de jeugd van FC Choyong. In maart 2017 tekende hij voor Cagliari na een succesvolle oefenstage. Voor de Italiaanse club werd hij de eerste Aziatische speler.[1] Zijn debuut maakte de aanvaller op 2 april. Op die dag werd na een tegendoelpunt van Giancarlo González toch met 1–3 gewonnen van Palermo, omdat Artur Ioniță tweemaal scoorde en ook Marco Borriello doel trof. Han kwam vier minuten voor het einde van de wedstrijd binnen de lijnen als invaller voor Marco Sau.[2] In zijn tweede optreden, een nederlaag in eigen huis tegen Torino (2–3) op 9 april, had Borriello vanaf de strafschopstip de score geopend, maar scoorden daarna Adem Ljajić, Andrea Belotti en Afriyie Acquah tegen. Han, die negen minuten voor tijd voor opnieuw Sau in het veld kwam, tekende in de vijfde minuut van de blessuretijd op aangeven van Diego Farias voor de aansluitingstreffer. Hiermee werd hij de eerste Noord-Koreaan ooit die trefzeker is in de Serie A.[3] Vier dagen na zijn eerste professionele doelpunt zette de Noord-Koreaan zijn handtekening onder een verbintenis tot medio 2022.[4] In de zomer van 2017 werd Han voor de duur van één seizoen op huurbasis bij Perugia gestald.[5] Deze verhuurperiode kwam na een half seizoen tot een einde en in januari 2018 keerde de Noord-Koreaan terug naar Cagliari. Hier verlengde hij twee maanden later zijn verbintenis tot medio 2023.[6] Medio 2018 huurde Perugia de Noord-Koreaanse aanvaller voor de tweede maal.[7] In de zomer van 2019 huurde Juventus de Noord-Koreaan voor twee seizoenen. In Turijn kwam hij te spelen in het tweede elftal.[8] Na een half seizoen kocht Juventus de Noord-Koreaan voor circa drieënhalf miljoen euro om hem vervolgens zes dagen later voor het dubbele bedrag te doorverkopen aan Al-Duhail.[9] Medio 2021 verliet hij de club, om in augustus 2023 bij 25 April terug te keren in Noord-Korea.