Karlsson was drafted by Calgary in 1993, but did not play in the NHL until 1999. He played 7 seasons with Leksands IF, scoring 18 goals and 33 points in ’98-99, before joining the Atlanta Thrashers the following season. He played three years with Atlanta, scoring 16 points in 2000-01. He spent a few seasons in the AHL, before returning to the Elitserien in 2004. He played two seasons with HV71, scoring 26 goals and 55 points in 2005-06, earning the Elitserien MVP trophy. That season earned him a contract with the Tampa Bay Lightning, and he played two seasons with the team before returning to Sweden in 2008.

Karlsson has played for Sweden at 3 major tournaments, including the ’95 World Juniors, the ’96 World Championships and the 2006 World Championships, where he won a gold medal.