Dahlin began his senior career at Åsebro IF in 2004. After one season with the Swedish Division 3 side, he was invited to Oslo to train with Lyn and was subsequently signed until the end of the 2009 season. In 2005, Dahlin was the third choice as goalkeeper behind Ali Al-Habsi and Nuno Marques. With both Al-Habsi and Marques gone after the season, and having made a good impression during the winter months, Dahlin became manager Henning Berg's preferred choice in goal, ahead of newcomer Eddie Gustafsson. He made thirteen appearances in the first half of the 2006 season. His debut came against Start in the league opener on 9 April, a game that ended in a goalless draw. After the summer, the roles were reversed and Dahlin received little playing time, only making one more appearance when he came on a substitute for an injured Gustafsson. For his performance in 2006, Dahlin received his first call-ups to the Swedish under-21 team, making six appearances in total that year. In 2007, Dahlin acted mainly as a reserve for Eddie Gustafsson, making only four appearances all season, and it became clear that Gustafsson would also be the first choice in goal in 2008. Therefore, in a bid to receive playing time at a high level, Dahlin agreed to a loan deal with Swedish side Trelleborgs FF. He returned to Lyn in August 2008, having made fourteen appearances in the Allsvenskan.
Malmö FF
On 8 July 2009 Dahlin was announced as a Malmö FF player. He instantly became first choice as goalkeeper and played for a majority of the games of the later season 2009. However, it emerged that Dahlin had chronic back pains which made him unable to play in a couple of games. These problems continued during the 2010 season but as Dahlin himself and club doctors worked hard to minimize the pain he was able to play all games except one and a half. For the 2010 league winning season he kept a clean sheet for 15 games. Dahlins injury problems continued for the 2011 season and he missed the majority of the league matches but recovered to play 12 league matches and played for the club in the group stage of the 2011–12 UEFA Europa League. On 13 June 2012 Dahlin signed a new two-year-long contract until the end of the 2014 season. In the 2012 season Dahlin wasn't as affected by his back injury as in the previous season and played 29 out of 30 matches for Malmö FF, he missed one match due to racking up three yellow cards. During the league title winning 2013 season Dahlin played 22 matches out of 30. He missed some matches due to injury and was briefly replaced as first choice goalkeeper by Robin Olsen after some solid performances by the latter. Dahlin held seven clean sheets during the season. He also played all six matches for the club during its participation in the qualifying stages of the 2013–14 UEFA Europa League. His performance throughout the season earned him a nomination for goalkeeper of the year.
Dahlin made his first cap for the Swedish national football team against USA in January 2009. Dahlin was selected for the annual training camp for the Sweden national team in January 2012. The squad selection for the camp traditionally feature the best Swedish players in domestic and other Scandinavian leagues.