He started playing for IFK Stockholm and went on to IFK Norrköping before moving to Norway in 2002, playing for Molde. He was their first choice for three seasons, but as his contract expired after the 2004 season he decided to find a new club. He went on several fruitless trials for clubs in Europe and the USA, and joined another Norwegian club, Hamarkameratene. The stay only lasted for year. After the 2005 season, Gustafsson signed with F.C. Lyn Oslo.
Playing his first international senior match in 2000, Gustafsson has been capped eight times for his country. Prior to this he was eligible to play for the USA, but chose Sweden instead.