Olsson urodził się w Gävle. Jego matka jest Kenijką, a ojciec Szwedem. Swoją karierę piłkarską rozpoczął w lipcu 2005 roku w szkółce piłkarskiej klubu Högaborgs BK. Po pół roku gry w drużynie juniorów tej drużyny przeszedł do akademii angielskiegoBlackburn Rovers. Zaś rok później został włączony do pierwszej drużyny.
Zadebiutował w niej 30 sierpnia 2007 roku w wygranym 2:0 meczu Pucharu UEFA z Myllykosken Pallo -47. W Premier League pierwszy występ zaliczył 30 grudnia, kiedy to zagrał w pojedynku z Derby County. Pierwszy sezon w Rovers zakończył z dwoma ligowymi występami, jednym pucharowym oraz jednym w pucharach europejskich. Został także wybrany najlepszym młodym piłkarzem sezonu w drużynie. W maju 2008 roku podpisał nowy kontrakt ze swoim klubem, w efekcie czego na Ewood Park pozostanie do lata 2012 roku.
24 września tego samego roku w meczu Pucharu Ligi z Evertonem strzelił swoją pierwszą bramkę dla Blackburn i jedyną w tym spotkaniu. W listopadowym spotkaniu Premier League z Tottenhamem Hotspur Olsson w efekcie zdobycia dwóch żółtych kartek otrzymał swoją pierwszą czerwoną kartkę. Dotychczas (stan na 7 grudnia 2008) w ekipie Blackburn wystąpił w dziewięciu ligowych pojedynkach, w tym w trzech od pierwszej minuty.
17 stycznia 2017 przeszedł do Swansea City za 3,50 mln euro. Grał w nim do 2019. W 2020 był zawodnikiem Helsingborgs IF, a w 2021 najpierw grał w BK Häcken, a następnie trafił do Malmö FF.
Kariera reprezentacyjna
Martin Olsson ma za sobą występy w reprezentacji Szwecji U-18. Zagrał również w sześciu spotkaniach kadry U-21, w której zadebiutował w 2007 roku.