Peterson startete bei den Junioren-Weltmeisterschaften 2008 in Val Venosta erstmals bei einer internationalen Meisterschaft. Sein bestes Resultat war der 31. Platz über 10 Kilometer klassisch. Im Sprintwettbewerb schied er als 39. in der Qualifikation aus. Nach einem Sieg in einem Sprintwettbewerb in Ulricehamn des Scandinavian-Cups wurde er im März 2009 erstmals für einen Weltcup-Wettbewerb nominiert. In Lahti qualifizierte er sich gleich bei seinem ersten Einsatz im Weltcup für die Viertelfinalläufe des Sprintwettbewerbs und belegte den 16. Platz. In der Saison 2009/10 gehörte er zum fixen Aufgebot der schwedischen Weltcupmannschaft bei Sprintwettbewerben. Bei der Tour de Ski 2009/2010 überraschte er mit einem vierten und einem fünften Platz bei den Sprintwettbewerben in Oberhof und Prag. Sein bestes Saisonresultat erzielte er mit Platz sechs im kanadischen Canmore. Bei den Olympischen Winterspielen 2010 in Vancouver erreichte er das Halbfinale und belegte den elften Platz. Er beendet die Saison als 36. im Gesamtweltcup und als Zwölfter in der Sprintwertung. Ebenfalls in der Saison wurde er zusammen mit Mats Larsson schwedischer Meister im Teamsprint. Mit einem zwölften und einem achten Platz bei den Weltcupwettbewerben in Liberec und Otepää qualifizierte es sich für die Nordischen Skiweltmeisterschaften 2011 in Oslo, wo er den 16. Platz belegte.
Zu Beginn der Saison 2011/12 gewann Peterson den Auftaktwettbewerb des Nordic Openings. Auch in Düsseldorf erreichte er den Finallauf, wo er den fünften Platz belegte. An gleicher Stelle setzte sich Peterson einen Tag später gegen die gesamte Konkurrenz durch und gewann mit seinem Partner Jesper Modin seinen ersten Teamsprintwettbewerb. Beim folgenden Weltcup in Davos erreichte er mit dem zweiten Platz im Sprint seine erste Einzelpodestplatzierung im Weltcup. Es folgte in Mailand ein dritter Platz im Sprint ein zweiter Rang zusammen mit Calle Halfvarsson im Teamsprint. Im Januar 2012 wurde er im Sprint und zusammen mit Johan Eriksson im Teamsprint schwedischer Meister. Anfang Februar 2012 holte er in Moskau im Sprint seinen ersten Einzelsieg im Weltcup. Zum Saisonende wurde er im Sprint in Lahti und bei der Sprinetappe beim Weltcupfinale in Stockholm jeweils Zweiter. Die Saison beendete er auf dem 12. Platz im Gesamtweltcup und dem ersten Rang im Sprintweltcup. Nach Gesamtplatz 66 zu Beginn der folgenden Saison bei der Nordic Opening in Kuusamo errang er den zweiten Platz im Sprintwettbewerb in Québec. Im Januar 2013 gewann er zunächst in Östersund ein Sprintrennen im Scandinavian-Cup und eine Woche später auch im Sprint beim Weltcup in Liberec. Zum Monatsende wurde er wie im Vorjahr schwedischer im Sprint. Im folgenden Monat kam er in Sotschi zusammen mit Emil Jönsson auf den zweiten Platz im Teamsprint. Beim Saisonhöhepunkt den Nordischen Skiweltmeisterschaften 2013 im Fleimstal belegte er den 15. Platz im Sprint. Zum Saisonende errang er den vierten Platz im Sprintweltcup. Zu Beginn der Saison 2013/14 kam er beim Auftaktwettbewerb der Nordic Opening in Kuusamo, die er auf dem 81. Platz beendete. Im weiteren Saisonverlauf erreichte er im Weltcup im Einzelsprint vier Top-Zehn-Platzierungen. Der vierte Rang beim Sprint in Lahti war dabei seine beste Platzierung. Im Januar 2014 wurde er zum dritten Mal in Folge schwedischer Meister im Sprint. Ebenfalls gewann er zusammen mit Anton Karlsson den Meistertitel im Teamsprint. Bei den Olympischen Winterspielen 2014 in Sotschi holte er zusammen mit Emil Jönsson im Teamsprint die Bronzemedaille und im Sprint die Silbermedaille. Beim Weltcupfinale in Falun siegte er bei der Sprintetappe und erreichte im Gesamtweltcup den 19. Platz und im Sprintweltcup den vierten Rang.
In der folgenden Saison konnte Peterson seine guten Resultate aus der Vorsaison nicht wiederholen. Nach Platz zehn zu Beginn der Saison in Ruka, belegte er bei der Sprintetappe bei der Nordic Opening in Lillehammer, die er auf dem 72. Platz beendete, den 28. Rang. Im weiteren Saisonverlauf kam er bei keinen Weltcupsprint in die Punkteränge. Im Januar 2015 errang er bei den schwedischen Meisterschaften in Örebro den zweiten Platz im Sprint. Bei den Nordischen Skiweltmeisterschaften 2015 in Falun wurde er Neunter zusammen mit Calle Halfvarsson im Teamsprint und Siebter im Sprint. In der Saison 2015/16 erreichte er den 47. Platz bei der Nordic Opening in Kuusamo und 44. Platz bei der Ski Tour Canada 2016 und erreichte damit den 36. Platz im Gesamtweltcup und den 12. Rang im Sprintweltcup. Zu Beginn der Saison 2016/17 belegte er bei der Weltcup-Minitour in Lillehammer den 24. Platz. Dabei kam er bei der Sprintetappe auf den dritten Platz. Anfang Februar 2017 wurde er schwedischer Meister im Sprint. Beim Saisonhöhepunkt den Nordischen Skiweltmeisterschaften 2017 in Lahti gelang ihn der 24. Platz im Sprint und der achte Rang zusammen mit Emil Jönsson im Teamsprint. Zum Saisonende kam er beim Weltcup-Finale in Québec auf den 31. Platz und erreichte den 28. Platz im Gesamtweltcup und den 12. Rang im Sprintweltcup. Ende März 2017 wurde er in Umeå schwedischer Meister zusammen mit Erik Silfver im Teamsprint.[1] In der Saison 2017/18 errang er den 54. Platz beim Ruka Triple und den 52. Platz beim Weltcupfinale in Falun. Zudem wurde er im Januar 2018 Dritter im Sprint in Planica und Zweiter zusammen mit Emil Jönsson im Teamsprint in Dresden und erreichte damit den 44. Platz im Gesamtweltcup und den 12. Platz im Sprintweltcup. Bei den Olympischen Winterspielen 2018 in Pyeongchang wurde er Neunter im Sprint. Ende März 2018 wurde er in Skellefteå zusammen mit Marcus Grateschwedische Meister im Teamsprint. Im folgenden Jahr lief er bei den Nordischen Skiweltmeisterschaften in Seefeld in Tirol auf den 46. Platz im Sprint.
Am 2. März 2020 gab er seinen Rücktritt auf Instagram bekannt.[2]