W Pucharze Świata zadebiutował 6 grudnia 2001 roku w Hochfilzen, zajmując 35. miejsce w sprincie. Pierwsze punkty (w sezonach 2000/2001 – 2007/2008 punktowało 30. najlepszych zawodników) wywalczył 13 grudnia 2001 roku w Pokljuce, zajmując 11. miejsce w biegu indywidualnym. Na podium zawodów tego cyklu po raz pierwszy stanął 11 lutego 2005 roku w Pragelato, kończąc rywalizację w sprincie na drugiej pozycji. Rozdzielił tam RosjaninaSiergieja Rożkowa oraz Alaksandra Symana z Białorusi. W kolejnych startach jeszcze 21 razy stawał na podium, odnosząc przy tym siedem zwycięstw: 19 stycznia 2008 roku i 24 stycznia 2009 roku w Anterselvie, 16 lutego 2010 roku w Whistler i 16 stycznia 2011 roku w Ruhpolding wygrywał biegi pościgowe, 18 grudnia 2010 roku i 6 marca 2014 roku w Pokljuce był najlepszy w sprintach, a 9 marca 2014 roku w tej samej miejscowości triumfował w biegu masowym. Ostatnie pucharowe podium wywalczył 22 marca 2014 roku w Oslo, zajmując drugie miejsce w biegu pościgowym. Najlepsze wyniki osiągnął w sezonie 2007/2008, kiedy zajął szóste miejsce w klasyfikacji generalnej i trzecie w klasyfikacji biegu pościgowego. Ponadto w sezonie 2006/2007 był drugi w klasyfikacji sprintu.
W 2002 roku wystąpił na igrzyskach olimpijskich w Salt Lake City, gdzie zajął między innymi 17. miejsce w sprincie i 14. miejsce w sztafecie. Na rozgrywanych cztery lata później igrzyskach w Turynie razem z kolegami z reprezentacji był czwarty w sztafecie. Indywidualnie najwyższą lokatę wywalczył w sprincie, który ukończył na trzynastej pozycji. Największy sukces w karierze osiągnął na igrzyskach olimpijskich w Vancouver w 2010 roku, wygrywając bieg pościgowy. Wyprzedził tam na podium AustriakaChristopha Sumanna i Francuza Vincenta Jay. Był to pierwszy w historii złoty medal olimpijski dla Szwecji w tej konkurencji. Blisko kolejnego podium był w sztafecie, w której Szwedzi ponownie zajęli czwarte miejsce. Brał też udział w igrzyskach olimpijskich w Soczi w 2014 roku, zajmując między innymi 12. miejsce w biegu indywidualnym i starcie masowym oraz dziesiąte miejsce w sztafecie.