Martin Olsson is the son of a Kenyan mother and Swedish father, and brother to Marcus Olsson and Jessica Olsson. Olsson began his playing career in Sweden by playing for Högaborgs BK, where former national star Henrik Larsson began his career. Olsson was working his way through the youth setup at the club in 2005–06. His talent attracted the attention of football clubs in Europe, and in January 2006, English, at the time Premier League side Blackburn Rovers signed him for their youth academy.
He made his Blackburn debut in the UEFA Cup qualifier in the 2007–08 season as a late substitution for Stephen Warnock. He made his Premier League debut against Derby County in a 2-1 victory on 30 December 2007, coming on as an 84th minute substitute for Morten Gamst Pedersen at Pride Park, in front of a crowd of 30,048 spectators and the referee was Peter Walton. He was voted Blackburn’s Young Player of the Year for the season 2007–08.
In May 2008, Olsson signed a new four-year deal, keeping him at Blackburn until summer 2012.
On 24 September 2008, Olsson scored his first Blackburn goal, scoring the winning goal in a League Cup tie against Everton. The goal turned out to be the only goal of the match. On 20 January 2010, he scored a spectacular overhead kick in a 6–4 League Cup semi-final defeat against Aston Villa in the 63rd minute at Villa Park.
Now considered a key player, Olsson started off the season at left back covering for Gaël Givet who himself was covering for various injuries at centre back. Olsson provided an assist in a 4-3 victory over Arsenal. After running from the half way line to the by-line, he pulled back a cross for Arsenal’s Laurent Koscielny to score an own goal. After helping Sweden qualify for UEFA Euro 2012, Olsson returned from international duty to put in a Man of the Match performance on the left wing against Queens Park Rangers in a 1-1 draw at Loftus Road.
On May 8 2012, Olsson was linked with a £4m move to Premier League side, Stoke City F.C. In May 2012, Olsson was named in the 23-man squad to compete for Sweden at UEFA Euro 2012 held in Poland and the Ukraine and was given the number 5 shirt. On Tuesday 5 June 2012, he started and played the full 90 minutes in his regular left-back berth against Serbia in a 2-0 victory in Sweden’s last warm-up game.