Peter Larsson spillede fra 1999 for en svenske klub Halmstads BKs ungdomshold, og fik i 2003 kontrakt med klubben som senior, hvor han samme år debuterede i den svenske topliga, Allsvenskan. Fra 2005 spillede Larsson fast på Halmstads forsvar, hvor han opnåede mere end 100 kampe. I januar 2008 fik han desuden sin debut på det svenske landshold i en venskabskamp mod Costa Rica, hvor han tilmed fik æren af at blive svensk landsholdsspiller nummer 1.000 gennem tiderne. Han var udtaget til EM 2008 men fik ikke spilletid. Peter Larsson er noteret for to landskampe for det svenske U21-landshold, og to landslampe for det svenske A-landshold.  Karriere i FCK I juli 2008 indgik Peter Larsson en 5-årig kontrakt med F.C. København, hvor han debuterede den 27. juli 2008 i en superligakamp mod Randers FC. Han blev hurtigt fast mand i midterforsvaret, men allerede i slutningen af august 2008 blev han langtidsskadet som følge af en brækket fod, og han havde efter skaden vanskeligt ved at spille sig tilbage i startopstillingen. I januar 2011 blev det offentliggjort, at FCK havde indgået lejeaftale med den svenske klub Helsingborgs IF om udleje af Peter Larsson til udløb af august 2011. Larsson spillede en række kampe for HIF, hvor han var fast mand på holdet. Klubben var interesseret i at overtage Larsson, men kunne ikke nå til enighed med FCK om prisen, og Peter Larsson returnerede således til FCK for efterårssæsonen 2011. Den 31. august 2012 underskrev Larsson en fem måneders kontrakt med Helsingborgs IF, og han blev derfor løst fra sin kontrakt med FC København.