Carlsson påbörjade sin hockeykarriär i Örebro HK, och spelade i föreningens juniorverksamhet fram till och med säsongen 2012/13. Därefter spelade Carlsson med Linköping HC:s J18-lag. I sin första säsong med klubben var han med och tog ett SM-silver med J18-laget. 2014/15 spelade Carlsson både med klubbens J18- och J20-lag innan han i slutet av säsongen fick chansen med Linköpings A-lag. Carlsson gjorde debut i SHL den 20 februari 2015 och gjorde samtidigt sin första SHL-poäng då han noterades för en assist i Linköpings 6–1-seger mot Modo Hockey. Carlsson var därefter ordinarie i laget och stod för 2 poäng på grundseriens sju sista matcher. I april 2015 meddelades det att Carlsson skrivit ett tvåårskontrakt med LHC. Vid NHL-draften, den 26 juni 2015, valdes han i den första rundan, som nummer 29 totalt, av Columbus Blue Jackets. Carlsson gjorde sitt första SHL-mål den 29 oktober 2015, på Mantas Armalis, då LHC besegrade Djurgårdens IF med 2–1. Efter sin första kompletta säsong med Linköpings seniorlag, där han noterades för nio poäng på 45 matcher (ett mål, åtta assist), skrev han i april 2016 på ett treårskontrakt för Columbus Blue Jackets i NHL. Under &lt;a href="Svenska%20hockeyligan%202016/2017"&gt;säsongen 2016/17&lt;/a&gt; lånades han ut från Blue Jackets till LHC och stod för fyra poäng på 40 grundseriematcher (två mål, två assist).