Начал свою карьеру в клубе «Сёдерхамн ФФ». В 1998 году перешёл в клуб высшего дивизиона «Хальмстад», выступал на позиции центрального защитника или опорного полузащитника. Дебютировал в высшей лиге 4 октября 1998 года в матче против стокгольмского АИКа. В «Хальмстаде» Ханссон стал ключевым игроком клуба и капитаном, завоевал любовь фанатов своим боевым духом и настроенностью на обеду в каждом матче. В 2000 году он помог клубу завоевать четвёртый в истории титул чемпиона Швеции.
В 2002 году Ханссон подписал контракт с голландским «Херенвеном». Там он тоже стал любимцем болельщиков, несколько раз выигрывал приз лучшего игрока клуба в сезоне.
В мае 2007 года Ханссон перешёл во французский «Ренн». В сезоне 2007/2008 провёл времени на поле больше всех остальных игроков «Ренна». В сезоне 2008/2009 стал капитаном команды.
В июне 2010 года на правах свободного агента подписал контракт сроком на 1 сезон с «Монако». Первый матч за «Монако» провёл 7 августа 2010 года против «Лиона».
Петтер Ханссон сыграл первый матч за сборную 1 февраля 2001 года против Финляндии. Он был заявлен на финальный турнир чемпионата Европы 2004, но не выходил на поле. На чемпионате мира 2006 был резервистом, в матче 1/8 финала против Германии вышел на замену из-за удаления Тедди Лучича. 2 июня 2007 года в принципиальном матче против Дании он забил свой первый гол за сборную. На Евро-2008 отыграл все 3 матча без замен, забил гол в ворота Греции. Последний раз играл за сборную 12 августа 2009 года в товарищеском матче с командой Финляндии. Последний раз был вызван в сборную в октябре 2009 года.
Женат, жену зовут Анна, у них есть сын Оскар.