W kolejnych startach jeszcze sześciokrotnie stawał na podium: 24 stycznia 2009 w Otepää był drugi w biegu na 15 km klasykiem, 14 lutego 2009 w Valdidentro był trzeci w tej konkurencji, 19 listopada 2011 w Sjusjøen był najlepszy w biegu na 15 km stylem dowolnym, 11 lutego 2012 w Novym Měscie wygrał bieg na 30 km klasykiem, 18 lutego 2012 w Szklarskiej Porębie wygrał bieg na 15 km klasykiem, a 17 lutego 2013 w Davos był najlepszy w biegu na 15 km stylem dowolnym.
Wystartował na igrzyskach olimpijskich w Turynie w 2006, gdzie wspólnie z Matsem Larssonem, Andersem Södergrenem i Mathiasem Fredrikssonem wywalczył brązowy medal w sztafecie. W pozostałych startach zajął 6. miejsce w biegu na 15 km klasykiem, 23. w biegu łączonym i 25. na dystansie 50 km techniką dowolną. Na rozgrywanych cztery lata później igrzyskach olimpijskich w Vancouver zdobył trzy medale. Najpierw był trzeci w biegu łączonym na 30 km, w którym lepsi byli tylko jego rodak, Marcus Hellner i Niemiec Tobias Angerer. Razem z Danielem Richardssonem, Andersem Södergrenem i Marcusem Hellnerem zdobył złoty medal w sztafecie. Następnie był trzeci na dystansie 50 km stylem dowolnym, w którym uległ Norwegowi Petterowi Northugowi i Axelowi Teichmannowi. Był również jedenasty w biegu na 15 km techniką dowolną.