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.