Ottosson, der für den Skellefteå SK startet, belegte bei den Juniorenweltmeisterschaften 2005 in Rovaniemi den 43. Platz im Skiathlon und den 12. Rang im Sprint. Im Januar 2006 lief er in Skellefteå sein erstes Rennen im Scandinavian Cup und errang dabei 24. Platz über 15 km klassisch. Bei den Juniorenweltmeisterschaften 2006 in Kranj kam er auf den 30. Platz im Sprint, auf den 25. Rang im Skiathlon und auf den 22. Platz über 10 km klassisch. Im März 2006 wurde er in Kalix schwedischer Juniorenmeister über 10 km Freistil und im 20-km-Massenstartrennen. Bei den U23-Weltmeisterschaften 2008 in Mals gelang ihn der 27. Platz über 15 km klassisch, der 22. Rang im Sprint und der zehnte Platz im 30-km-Massenstartrennen. In der Saison 2009/10 erreichte er mit vier Platzierungen in den Punkterängen den 12. Platz in der Gesamtwertung des Scandinavian Cups. Sein Debüt im Skilanglauf-Weltcup hatte er im November 2010 in Gällivare, das er auf dem 69. Platz über 15 km Freistil beendete. Im folgenden Monat holte er in Düsseldorf mit dem 26. Platz im Sprint seine ersten und bisher einzigen Weltcuppunkte. Bei der Winter-Universiade 2011 in Erzurum kam er auf den 28. Platz über 10 km klassisch, auf den 27. Rang im Skiathlon und auf den neunten Platz im Sprint. Seit der Saison 2012/13 nimmt er vorwiegend an Skimarathonrennen teil. Dabei gewann er im April 2016 den Fossavatn Ski Marathon über 50 km klassisch und belegte im März 2017 den vierten Platz beim Wasalauf.