Petter Hansson inledde karriären i Stugsunds IK och sedan gick han över till Söderhamns FF i de tidiga tonåren. Från Söderhamn värvades han av Halmstads BK 1998. Han gjorde allsvensk debut 4 oktober samma år mot AIK. Hansson spelade i HBK som defensiv mittfältare och mittback och blev så småningom även lagkapten. Han var med och tog klubbens fjärde SM-guld 2000.
Sommaren 2002 flyttade Hansson vidare till SC Heerenveen i holländska ligan. Under sin tid i klubben röstades han flera gånger fram som lagets bästa spelare av supportrarna. Heerenveen ville förlänga kontraktet men efter fem år i klubben ville Hansson gå vidare.
I maj 2007 skrev han på ett treårskontrakt för det franska laget Stade Rennais och blev klubbkamrat med Erik Edman.[1]
Sommaren 2010 anslöt Hansson till AS Monaco, som vid säsongens slut hamnade på nedflyttningsplats och fick därmed lämna Ligue 1 efter 35 år. Efter AS Monacos degradering avslutade Hansson karriären i Ligue 2.[2]Den 30 maj 2012 meddelade Hansson officiellt, via sin agent Fabrice Picot, att han avslutade sin proffskarriär.[3]
Hansson debuterade i Sveriges landslag i en träningslandskamp mot Finland den 1 februari 2001. Efter debuten dröjde det till 2004 innan han gjorde nästa landskamp. Han var med i truppen till EM 2004 men fick ingen speltid. I VM 2006 fick han göra ett inhopp i förlustmatchen mot Tyskland i åttondelsfinalen, efter att Sverige fått en spelare utvisad. Detta inledde en period med Hansson som ordinarie i det svenska mittförsvaret tillsammans med Olof Mellberg. Hansson gjorde sitt första landslagsmål mot Danmark i kvalet till EM 2008. Efter att matchen avbrutits (se supporterattacken på Parken 2007) tilldömdes Sverige segern med 3-0, men Svenska Fotbollförbundet beslutade att ändå räkna Hanssons mål i sin officiella statistik. Hansson spelade alla Sveriges matcher i EM 2008, och gjorde det andra målet på en studsande boll, i den inledande gruppspelsmatchen mot Grekland.[5] Efter att ha startat i de tre inledande matcherna av kvalet till VM 2010 blev Hanssons sista 43:e landskamp ett inhopp i en vänskapsmatch mot Finland 12 augusti 2009.[6]