Larsson, quien largó para el Hudiksvalls IF, corrió su primera carrera en la Copa del Mundo en Engelberg en diciembre de 1999 y terminó 74º en el sprint. En diciembre de 2001 logró sus primeros puntos en la Copa del Mundo en Garmisch-Partenkirchen con el tercer lugar y en Salzburgo con el quinto lugar en el sprint. En 2002 se convirtió en el campeón sueco de sprint. Al comienzo de la temporada 2002/03 logró su primera victoria en la Copa del Mundo en el sprint de Düsseldorf . En el Campeonato del Mundo de Esquí Nórdico de 2003 en Val di Fiemme , logró el puesto 17 en el sprint. En la última copa del mundo de sprint de la temporada en Borlänge , volvió al podio con el segundo lugar en el sprint y alcanzó el séptimo lugar en la copa del mundo de sprint. Al comienzo de la temporada siguiente, como el año pasado, ganó el sprint en Düsseldorf. También ganó el sprint por equipos junto con Thobias Fredriksson . En el transcurso de la temporada, ocupó el segundo lugar en el sprint en Nové Město y en el sprint por equipos junto con Thobias Fredriksson en Toblach . En la copa del mundo de sprint, fue quinto al final de la temporada. En la temporada 2004/05 pudo sumar puntos en las tres participaciones de la Copa del Mundo Sprint y volver a ganar en Düsseldorf en el sprint individual. También al comienzo de la temporada 2005/06 ganó el sprint en Düsseldorf y ganó esta carrera por cuarta vez consecutiva. En el transcurso de la temporada llegó en Sprint Nové Město y en Borlänge al segundo lugar y alcanzó el 12 ° lugar en la Copa del Mundo general y el cuarto lugar en la Copa del Mundo de Sprint. En los Juegos Olímpicos de Invierno de 2006 en Turín , ocupó el puesto 13 en la competencia de velocidad. En el primer partido de la temporada siguiente ganó el sprint por equipos en Düsseldorf junto con Björn Lind . En el sprint individual, anotó puntos en las cinco competiciones de la Copa del Mundo de Sprint, pero no se ubicó entre los diez primeros en ninguna de estas carreras. Terminó el Tour de Ski 2006/07 en el puesto 62. También al comienzo de la temporada 2007/08 ganó el sprint por equipos junto con Thobias Fredriksson en Düsseldorf. Más adelante en la temporada ganó dos sprints en la Copa del Lejano Oriente . En los sprints individuales logró colocaciones en el centro del campo en los años siguientes. Corrió su última carrera internacional en enero de 2010 en Changchun . Allí, en Vasaloppet China, durante más de 50 km estilo libre, terminó 24º.
Larsson participó en 47 carreras individuales en la Copa del Mundo y llegó 15 veces entre los diez primeros y nueve veces en el podio.