Il débute sa carrière professionnelle à Högaborgs BK à 17 ans. Il évolue ensuite à Helsingborgs IF et au Feyenoord Rotterdam puis signa au Celtic FC en juillet 1997. Avec le Celtic, son rendez-vous le plus important a été la finale de la Coupe UEFA perdue 3-2 après prolongation contre le FC Porto malgré une excellente prestation de Larsson ponctuée par deux buts.
Après sept saisons pleines passées au Celtic avec notamment 242 buts en 315 matchs et le Soulier d'or en 2001, Larsson signe à la fin de la saison 2003-2004 un contrat de deux ans au FC Barcelone. Il manque la plus grande partie de sa première saison suite à une grave blessure au genou.
Le 17 mai 2006, pour son dernier match sous le maillot Blaugrana, Larsson, rentré en seconde mi-temps, offre deux passes décisives à Samuel Eto'o et Juliano Belletti permettant au club catalan de remporter sa deuxième Ligue des Champions.
À la fin de son contrat à Barcelone, Larsson retourne jouer dans son ancien club d'Helsingborgs IF. Alors que son retour à Helsingborg laisse présager une fin de carrière tranquille dans le club qui l'avait révélé, Henrik Larsson est prêté à Manchester United pour une durée de 3 mois. Il s'y illustre notamment en 8e de finale retour de la Ligue des Champions en marquant un but important face à Lille (1-0). Il quitte le club mancunien le 12 mars 2007 pour retourner en Suède, et rejoindre Helsinborg.
Il effectue sa première sélection avec la Suède le 13 octobre 1993 à Solna contre la Finlande (3-2). Il enchaîne par la Coupe du monde 1994 où, barré en attaque par les stars expérimentées Tomas Brolin et Kennet Andersson, il parvient à inscrire un but face à la Bulgarie (4-0). La Suède est absente des rendez-vous anglais (Euro 96) et français (Mondial 98) et décevante à l'Euro 2000 malgré un but de Larsson contre l'Italie (1-2).
Après un Mondial 2002 plutôt réussi et 3 buts en 4 matchs, Larsson décide de prendre sa retraite internationale, ce qui provoque l'émoi des supporters suédois, même jusqu'aux politiciens. Devant l'attente du peuple suédois, Larsson décide alors de revenir en sélection pour disputer l'Euro 2004, au cours duquel il forme un duo d'attaquants redoutable avec Zlatan Ibrahimovic et inscrit 3 buts en 4 matchs, menant la Suède en quart de finale.
Les statistiques internationales de Henrik Larsson sont impressionnantes avec 37 buts marqués en 106 sélections, la plupart de ces matchs ayant été joués en tant que milieu de terrain par Larsson.
Le 13 mai 2008, coup de théâtre, Henrik Larsson est retenu dans la liste des 23 joueurs suédois à participer à l'Euro 2008, alors qu'il avait pris sa retraite internationale après la Coupe du Monde 2006.
Quelques heures après la défaite de la Suède face à la Russie à l'Euro 2008, Henrik Larsson indique qu'il ne prend pas sa retraite, se sentant prêt à continuer si le sélectionneur venait à l'appeler.
Ce n'est que le 20 octobre 2009 que son club de Helsingborgs IF annonce qu'il mettra un terme à sa carrière à l'issue du match contre Elfsborg le premier novembre de la même année. Face à Djurgården, Larsson joue son dernier match à domicile. Le club prépare une cérémonie d'après-match pendant laquelle il annonce qu'il retire le numéro 17 qui ne sera plus jamais attribué. Larsson très ému, s'adressera aux supporters en larmes avant de recevoir une superbe ovation.
- 1989-1992 : Högaborgs BK 74 matchs (23 buts)
- 1992-1993 : Helsingborgs IF 56 matchs (50 buts)
- 1993-1997 : Feyenoord Rotterdam 101 matchs (26 buts)
- 1997-2004 : Celtic Glasgow 315 matchs (242 buts)
- 2004-2006 : FC Barcelone 54 matchs (15 buts)
- Mars 2007-2009 : Helsingborgs IF 37 matchs (17 buts)
- Suède : 106 sélections (37 buts)
- Depuis Déc.2009 : Landskrona BoIS