Johansson, der für den Falun Borlänge SK startet, nahm bis 2019 an Juniorenrennen teil. Dabei belegte er bei den Nordischen Junioren-Skiweltmeisterschaften 2017 in Soldier Hollow den 30. Platz über 10 km Freistil, den 22. Rang im Skiathlon und den achten Platz mit der Staffel. In der Saison 2017/18 wurde er schwedischer Juniorenmeister über 10 km Freistil und startete in Trondheim erstmals im Scandinavian-Cup, wo er den 189. Platz im Sprint belegte. Bei den Nordischen Junioren-Skiweltmeisterschaften 2018 in Goms lief er auf den 20. Platz über 10 km klassisch, auf den 12. Rang im Skiathlon und auf den siebten Platz mit der Staffel und bei den Nordischen Junioren-Skiweltmeisterschaften 2019 in Lahti jeweils auf den 28. Platz im Sprint und 30-km-Massenstartrennen, auf den 24. Rang über 10 km Freistil und auf den sechsten Platz mit der Staffel. Im folgenden Jahr kam er bei den U23-Skiweltmeisterschaften 2020 in Oberwiesenthal auf den 29. Platz im 30-km-Massenstartrennen, auf den fünften Rang über 15 km klassisch und auf den vierten Platz mit der Staffel. Sein Debüt im Skilanglauf-Weltcup hatte er im Januar 2021 in Falun, welches er auf dem 55. Platz über 15 km klassisch beendete. Bei den folgenden U23-Skiweltmeisterschaften in Vuokatti errang er den 23. Platz über 15 km Freistil. Nach zwei Siegen bei FIS-Rennen in Gällivare zu Beginn der Saison 2021/22, holte er in Ruka mit dem 22. Platz über 15 km klassisch und dem 13. Rang in der Verfolgung seine ersten Weltcuppunkte. Bei den Olympischen Winterspielen 2022 in Peking kam er auf den 39. Platz im 50-km-Massenstartrennen und auf den 37. Rang im Skiathlon. Bei den nachfolgenden U23-Weltmeisterschaften 2022 in Lygna gewann er die Silbermedaille über 15 km klassisch.