Larsson made his Elitserien debut on 16 September 2010 against Modo Hockey.[1] A week later, on September 23, against Djurgårdens IF, he recorded his first Elitserien point, being the second assist in a goal, tying the game 2–2.[2][3] His first Elitserien goal was scored on January 15, 2011, against goaltender Joacim Eriksson of Skellefteå AIK.[4]
On 1 October 2010, Larsson signed a two-year contract with Brynäs IF's elite team, which expired after the 2011–12 Elitserien season.[5] Larsson's seven goals and 15 assists in the first 29 games of the 2011–12 season led to a nomination for that season's Elitserien Rookie of the Year award.[6] He would then win the award.[7] With 9 points in 16 playoff games, his team went on to win the Swedish Championship that year.
On 18 May 2011, Larsson signed a three-year contract with the Minnesota Wild, but was loaned to Brynäs for the 2011–12 season.[8]
With the intention of pursuing his NHL career, Larsson relocated to North America, and was directly assigned to the Wild's American Hockey League (AHL) affiliate, the Houston Aeros, to begin the 2012–13 season due to the lockout. Larsson was recalled to the Wild during the shortened season as an injury replacement and made his NHL debut against the Detroit Red Wings on February 17, 2013.[9]
Larsson has on several occasions participated in Sweden's national teams, including the junior teams as well as the senior team. In the 2010 World U18 Championships, Larsson and his Sweden were placed second after the United States, losing the final against them.
The Sabres re-signed Larsson in the summer before the 2017–18 season to a two-year, $1.475 million contract.[12] During the 2017–18 season, Larsson was suspended for two games on 2 February 2018 for cross checking Vincent Trocheck in a 4–2 loss to the Florida Panthers.[13]
On 12 July 2019, the Sabres re-signed Larsson to a one-year, $1.55 million contract extension.[14] In his eighth year within the Sabres organization in the 2019–20 season, Larsson recorded 6 goals and a career NHL high 18 points in 62 games before the season was paused and effectively ended due to the COVID-19 pandemic.
On 10 October 2020, as an unrestricted free agent from the Sabres, Larsson opted to sign a two-year, $2.8 million contract with the Arizona Coyotes.[15]
On 21 March 2022, the day of the NHL trade deadline, the Arizona Coyotes traded Larsson to the Washington Capitals in exchange for a third-round pick.[16] Larsson having been injured while traded by the Coyotes later returned to health and played out the remainder of the 2021–22 season with the Capitals, contributing with 6 points in 14 regular season games. He made his NHL playoff debut in the post-season, adding two assists through 6 games.
On 12 August 2022, Larsson as a free agent halted his NHL career in opting to return to his original Swedish club, Brynäs IF of the SHL, after signing a three-year, $930,000 contract.[17]
International play
Larsson celebrates after winning the 2012 World Junior Hockey Championship.
On 30 March 2011, Larsson made his senior national team debut in an exhibition game against Latvia which ended 4–1 in Sweden's favour.[18] In the 2012 World J20 Championships, he was the captain when Sweden won its first J20 gold medal since 1981, its second overall.