Nygren began playing football at Utbynäs SK when he was 5–6 years old. In 2013, at the age of 12, he joined IFK Göteborg. After impressing in the youth teams, Nygren made his first-team debut for IFK Göteborg in a friendly game against Örgryte IS on 24 March 2018.[3] Two months after his debut, in May 2018, Nygren signed his first professional contract with Göteborg, a deal running until the end of 2020, despite interest from foreign clubs such as Manchester City, Bayern Munich and Inter.[4] The new contract also saw the 16-year old Nygren promoted to the first team squad.[5]
Nygren's official debut for Göteborg came against Torns IF in the Swedish Cup on 23 August 2018, where he made a brief appearance in the 4–0 win.[6] Before the season ended, Nygren also made his Allsvenskan debut in a game against Djurgårdens IF on 31 October 2018, and he played in the last three games of the season. In the following match against Malmö FF, Nygren started the game[7] and was in the starting line-up in the final game of the season against Örebro SK, scoring twice in Göteborg's 3–1 victory.[8]
Genk
On 20 June 2019, 17-year old Nygren joined Belgian club Genk in a record deal for a fee around five million euros.[9][10] He signed a deal until June 2024.[11] Nygren made his debut for Genk in a Belgian Super Cup win against K.V. Mechelen on 20 July 2019.[12] Nygren also scored Genk's first goal in his home debut on 27 July in a 2–1 win over K.V. Kortrijk.[13]
To get some more playing time and experience, Nygren was loaned out to Dutch side SC Heerenveen on 6 October 2020 for two seasons.[14] In his first season, Nygren scored seven goals in 32 games (16 from start and 16 from the bench). Already after the first season, there was talk that he was on his way out of the club because he wasn't getting enough playing time, but he ended up staying and started the 2021–22 season out at the Dutch club.[15]