Gustafsson began playing hockey in Nynäshamns IF,[1] before moving to Djurgårdens IF's youth organisation. Gustafsson represented team Stockholm in the 2008 TV-pucken, a national junior tournament, scoring four assists. He played the 2008–09 season with Djurgården's under-18 team. In the following season, Gustafsson played for both the under-18 team and the J20-team. For the 2010–11 season, Gustafsson had a permanent place in the J20-team which won their division and ended up third in the playoffs. He extended his contract with Djurgårdens IF in May 2011 through to the 2013–14 season.[2]
Gustafsson was called to make his Elitserien (now the Swedish Hockey League (SHL)) debut in the 2011–12 season opener against HV71 on 15 September 2011, but did not receive any game-time. In his second game, against Brynäs IF on 27 September 2011, he made his on-ice debut, playing six minutes of the game.[3] Gustafsson scored his first Elitserien goal on 26 December 2011 against Fredrik Norrena of Linköpings HC.[4]
On 4 April 2013, with Djurgårdens IF demoted to the second-tier HockeyAllsvenskan, Gustafsson left the team to sign a contract with SHL club Frölunda HC.[5]
After two successful seasons establishing himself with Frölunda, and with his NHL playing rights not retained by Edmonton, on 30 April 2015, Gustafsson signed a two-year contract with the Chicago Blackhawks.[6]
Chicago Blackhawks
Gustafsson began the 2017–18 season with Chicago's American Hockey League (AHL) affiliate, the Rockford IceHogs, but was recalled to the NHL on 9 January 2018.[7] He recorded his first NHL goal and added an assist in a 7–3 loss to the New York Islanders on 20 January.[8] On 6 March, Gustafsson signed a two-year contract extension with Chicago.[9]
Calgary Flames
In the 2019–20 season, Gustafsson entering the final season of his contract was unable to keep his scoring pace from the previous season. Adding 6 goals and 26 points in 59 games and with the Blackhawks out of contention for a playoff berth, Gustafsson was dealt by Chicago at the NHL trade deadline to the Calgary Flames in exchange for a 2020 third-round pick on 24 February 2020.[10]
Philadelphia Flyers
Un-signed from the Flames, Gustafsson left as a free agent at the conclusion of his contract and later agreed to a one-year, $3 million contract with the Philadelphia Flyers on 12 October 2020.[11] In the pandemic delayed 2020–21 season, he appeared in 24 games with the Flyers recording 1 goal and 10 points. Unable to cement a role within the Flyers blueline he was dealt at the trade deadline to the Montreal Canadiens in exchange for a seventh-round pick in 2022 on 12 April 2021.[12]
At the conclusion of his contract with the Blackhawks, Gustafsson left as a free agent and was signed to a one-year, $800,000 contract with the Washington Capitals on 13 July 2022.[16] In the 2022–NHL season, on 17 December, Gustafsson scored his first three goals of the season for his first career hat-trick in a win over the visiting Toronto Maple Leafs.[17] With his ice-time elevated due to an injury to leading defenceman John Carlson, Gustafsson was rejuvenated with the Capitals, scoring 7 goals and 31 assist for 38 points in 61 regular season games. As a pending free agent and with the Capitals looking out of the playoffs, on 28 February, 2023, three days before the trade deadline, Gustafsson was traded to the Maple Leafs, along with a first-round pick in the 2023 NHL Entry Draft, in exchange for defenceman Rasmus Sandin.[18]
New York Rangers
As a free agent from the Maple Leafs, Gustafsson signed a one-year, $825,000 contract with the New York Rangers on 1 July 2023. During the 2023–24 season he recorded six goals and 25 assists in 76 games for the Rangers.[19]
Detroit Red Wings
On 1 July 2024, Gustafsson signed a two-year, $4 million contract with the Detroit Red Wings.[20]
Personal life
Gustafsson's younger brother Glenn is also a professional hockey player, currently playing for Örebro HK in the SHL.[21]