Larsson, who started for the Hudiksvalls IF, ran his first World Cup race in Engelberg in December 1999 and finished 74th in the sprint. In December 2001 he achieved his first World Cup points in Garmisch-Partenkirchen with third place and in Salzburg with fifth place in the sprint. In 2002 he became the Swedish sprint champion. At the beginning of the 2002/03 season he won his first World Cup victory in the sprint in Düsseldorf . At the Nordic World Ski Championships in 2003 in Val di Fiemme , he achieved 17th place in the sprint. At the last sprint world cup of the season in Borlänge he came back on the podium with second place in the sprint and reached seventh place in the sprint world cup. At the beginning of the following season, like last year, he won the sprint in Düsseldorf. He also won the team sprint together with Thobias Fredriksson . In the further course of the season he took second place in the sprint in Nové Město and in the team sprint together with Thobias Fredriksson in Toblach . In the sprint world cup, he was fifth at the end of the season. In the 2004/05 season he was able to score points in all three Sprint World Cup participations and win again in Düsseldorf in the individual sprint. Also at the beginning of the 2005/06 season he won the sprint in Düsseldorf and won this race for the fourth time in a row. In the further course of the season he came in Sprint Nové Město and in Borlänge to second place and reached 12th place in the overall World Cup and fourth place in the Sprint World Cup. At the 2006 Winter Olympics in Turin , he came 13th in the sprint competition. At the season opener of the following season he won the team sprint in Düsseldorf together with Björn Lind . In the individual sprint he scored points in all five Sprint World Cup competitions, but did not make it into the top ten in any of these races. He finished the Tour de Ski 2006/07 in 62nd place. Also at the beginning of the 2007/08 season he won the team sprint together with Thobias Fredriksson in Düsseldorf. Later in the season he won two sprints at the Far East Cup . In the individual sprints he achieved placements in midfield in the following years. He ran his last international race in January 2010 in Changchun . There at the Vasaloppet China over 50 km freestyle he finished 24th.
Larsson took part in 47 individual races in the World Cup and came 15 times in the top ten and nine times on the podium.