Начинал карьеру в клубе своего родного города «Рёгле». В 1994 году был задрафтован клубом НХЛ «Калгари Флэймз», однако продолжал выступать в Швеции — в 1995 году перешёл в клуб «Ферьестад» из Карлстада. В 1999 году всё же уехал в НХЛ — «Калгари» уступил права на Йонссона клубу «Нью-Йорк Айлендерс», за который играл его брат Кенни. Тем не менее, в «Островитянах» у Йонссона не заладилось, и он подумывал о возвращении на родину. 11 марта 2000 года «Айлендерс», чтобы не потерять хоккеиста без компенсации, обменяли его в «Анахайм Майти Дакс», за которых Йонссон провёл лишь 13 матчей в конце сезона 1999/2000. По окончании сезона он вновь присоединился к «Ферьестаду», за который играл ещё девять лет — до 2009 года.
Является рекордсменом сборной Швеции по количеству игр — провёл в составе «Тре Крунур» 285 матчей. Четырежды принимал участие в Олимпиадах, став двукратным олимпийским чемпионом, а также 12 раз — в чемпионатах мира. В 2006 году стал автором уникального достижения — в одном и том же сезоне стал олимпийским чемпионом, чемпионом мира и чемпионом Швеции[2]. На трёх чемпионатах мира являлся капитаном сборной Швеции.