Olsson begynte sin fotballkarriere hos Landskrona BoIS under ledelse av Jan Jönsson, hvor han som venstreback fikk sin førstelagsdebut i 2003 og spilte 56 seriekamper over to år. I 2005-sesongen ble han også utnevnt til lagkaptein.
NEC Nijmegen
I juli 2005 skrev han under for den nederlandske klubben NEC Nijmegen med en overgangssum på EUR 750 000.[2] Han etablerte seg raskt hos NEC som midtstopper og tilpasset seg deretter den nederlandske mannsmarkeringen,[3] og ble i tillegg mer målfarlig ettersom han scoret tre mål i 2007/2008-sesongen. Hans første seriekamp kom mot FC Utrecht den 14. august 2005 (0–0). Totalt spilte han 93 seriekamper og scoret 5 mål frem til 2008.
West Bromwich Albion
Den 29. august 2008 ble Olsson solgt til den engelske klubben West Bromwich Albion FC for GBP 800 000.[4] Han fikk sin debut for WBA i kampen mot West Ham United FC den 13. september, og scoret sitt første mål for klubben borte mot Middlesbrough FC (1–0) samme år.[5] Olsson signerte deretter en ny fireårskontrakt den 28. september 2009.