Larsson begon zijn carrière in 1989 bij Högaborgs BK. Na twee jaar bij Helsingborgs IF (1992-1993) te hebben gespeeld, vertrok Larsson naar het buitenland. Feyenoord (1993-1997) werd zijn eerste club buiten Zweden. Hij maakte zijn competitiedebuut voor de club uit Rotterdam-Zuid op 20 november1993, toen de ploeg van trainer-coach Willem van Hanegem op eigen veld met 1-1 gelijkspeelde tegen Vitesse. De nieuwe aanwinst viel in dat duel na 75 minuten in voor Regi Blinker.
Na vier jaar gespeeld te hebben in Rotterdam vertrok Larsson naar Celtic Glasgow. In juli 1997 tekende Larsson bij Celtic voor 650.000 Britse pond. Zijn debuut was niet zo spectaculair. Hij speelde de bal naar de tegenstander, wat in een 2-1 nederlaag voor Celtic resulteerde. Uiteindelijk werden het echter zeer succesvolle jaren bij de Schotse voetbalclub. Tussen 1997 en 2004 maakte Larsson voor Celtic 175 competitiedoelpunten. Na het EK van 2004 tekende hij een contract bij FC Barcelona.
Larsson debuteerde op 29 juli 2004 in het oefenduel met Suwon Samsung Bluewings. Bij de Catalaanse club groeide hij uit tot een publieksfavoriet en Larsson bracht bij FC Barcelona zijn totaal aantal landstitels op zes (1998, 2001, 2002, 2004 met Celtic; 2005, 2006 met Barça). In het seizoen 2004-2005 raakte Larsson tegen Real Madrid zwaar geblesseerd aan de knie. Na maanden revalideren keerde hij aan het eind van het seizoen terug. Op 11 januari 2006 bereikte Larsson een persoonlijke mijlpaal. Door twee doelpunten in het bekerduel tegen Zamora CF, kwam de Zweed op een totaal van 400 officiële doelpunten in zijn carrière. Larsson had maar 613 wedstrijden nodig om de vierhonderd doelpunten te bereiken. Na twee seizoenen bij FC Barcelona te hebben gespeeld, maakte Larsson in februari 2005 zijn terugkeer naar Helsingsborgs IF bekend. Voordat hij vertrok, had Larsson nog wel een groot aandeel in de UEFA Champions League-winst. FC Barcelona won in de finale met 2-1 van Arsenal FC en Larsson gaf als invaller voor Mark van Bommel de assists voor beide Catalaanse treffers van eerst Samuel Eto'o en daarna Juliano Belletti.
Op 2 december maakte Manchester United bekend dat de club Larsson van januari tot maart 2007 huurde van Helsingsborgs IF. In deze periode lag in Zweden de competitie stil.
Larsson speelt sinds 1993 in het Zweeds voetbalelftal. Hij maakte zijn debuut op 13 oktober1993 in het WK-kwalificatieduel tegen Finland, dat met 3-2 werd gewonnen. Larsson scoorde in dat duel in de veertigste minuut, de overige treffers van de thuisploeg kwamen op naam van Martin Dahlin.
In 2002 zei hij de nationale ploeg vaarwel. In 2004 maakte Larsson echter weer deel uit van de nationale ploeg nadat zo'n 120.000 Zweden een petitie hadden getekend om Larsson hiertoe te overtuigen. Zweden verraste op het Europees Kampioenschap 2004 in Portugal met bij wijlen wervelend voetbal onder impuls van onder anderen Larsson. Na het EK bleef Larsson zich beschikbaar stellen voor Zweden. Hij vormde in de nationale ploeg een aanvalsduo met Zlatan Ibrahimović. Van het duo Larsson-Ibrahimovic werd tijdens het WK 2006 veel verwacht, maar het tweetal stelde net als de hele Zweedse ploeg teleur. Met moeite werd de achtste finale bereikt, waarin Duitsland echter redelijk gemakkelijk met 2-0 won. Aan het begin van de tweede helft kon Larsson uit een strafschop Zweden nog terug in de wedstrijd brengen, maar hij schoot hoog over. Na afloop van het toernooi verklaarde hij zijn interlandloopbaan te beëindigen[1] Later kwam hij terug op die beslissing.
Van 2009 tot 2012 was Larsson werkzaam als trainer-coach bij Landskrona BoIS in de Zweedse Superettan. In 2014 nam hij het dan net gepromoveerde Falkenbergs FF onder zijn hoede, nadat Hans Eklund de club voor het eerst in haar bestaan naar de hoogste afdeling had geleid. Larsson behield zich met Falkenbergs in de Allsvenskan, maar nam vervolgens in november 2014 uit eigen beweging ontslag.
In januari 2015 werd hij trainer van Helsingborgs IF. Daar werd hij coach van onder andere zijn zoon Jordan Larsson, die in juli 2014 aansloot bij de selectie van Helsingborgs. Larsson kreeg als opdracht de ploeg te herstructureren, nadat de club in 2011 voor het laatst kampioen was geworden. Larsson was twee jaar trainer van de club. Op 24 november 2016 nam hij ontslag, nadat hij met de club degradeerde naar de Superettan en zijn zoon, na afloop van de laatste wedstrijd, door hooligans werd aangevallen.[2] Sinds 3 oktober 2018 was Larsson in dienst als adviseur bij Ängelholms FF.[3] In juni 2019 werd Larsson wederom gepresenteerd als coach van Helsingborgs IF. Op 23 augustus 2019 stapte hij echter al op na bedreigingen door eigen fans op sociale media.
In augustus 2020 trad hij aan als assistent van Ronald Koeman bij FC Barcelona, de club waar hijzelf tussen 2004 en 2006 voor uitkwam als voetballer. In april 2021 wonnen ze de Spaanse beker. Na het ontslag van Koeman op 28 oktober 2021, werd het dienstverband van Larsson ook per 1 november beëindigd.[4]