Eriksson started playing for Lerums BK at a young age and excelled beyond others his age quickly. By age 11, he was already playing with the older under-16 team. His talent was recognized at various tournaments and he finally landed on the junior team for Frölunda HC. Eriksson's professional career began in the top-tier Elitserien, where he played for Frölunda, sometimes facing his future fellow Boston Bruins forward Carl Söderberg when playing against the Malmö Redhawks during his first two seasons with Frölunda. Eriksson won Rookie of the Year honours in 2004 at the age of 18 after posting eight goals and five assists in 46 games. A year later, Eriksson would post five goals and nine assists in 39 games, helping Frölunda win the Swedish ice hockey championship.
Dallas Stars
In the 2003 NHL Entry Draft, the Dallas Stars drafted Eriksson in the second round with the 33rd overall pick. After playing in his second season with Frölunda, Eriksson moved to North America and appeared in two pre-season games for Dallas in 2005. His professional debut in North America came on 6 October 2005, with the Stars' American Hockey League affiliate, the Iowa Stars, in a game where Eriksson posted his first assist and point of the season. Eriksson's first NHL goal came in his debut, 4 October 2006, against the Colorado Avalanche. Two years later, he had a break-out season in 2008–09, where he led the Stars with 36 goals, placing him fifth in the West and 12th overall in goal-scoring. He was one of only three Stars to play in all 82 games of the season. Prior to the following season, on 2 October 2009, he was recognized as a significant offensive force of the Stars attack by re-signing to a six-year contract extension worth $25.5 million. Eriksson participated in his first NHL All-Star Game in 2011. He had a goal and two assists as well as the eventual game-winning empty-net goal to lead all players with four points.
On 1 July 2016, Eriksson signed a six-year, $36 million deal with the Vancouver Canucks. Eriksson has previously had success with Henrik and Daniel Sedin in international tournaments. He made his Canucks debut on 15 October 2016, against the Calgary Flames where he scored an own goal. With the Vancouver net empty due to a delayed penalty by the Flames and facing pressure from attack players, Eriksson attempted to dump the puck into his own zone, however, a miscalculation in the heat of the moment lead to the puck entering the Canuck's net. Nevertheless, Vancouver would win 2–1 in the shootout, with Eriksson earning an assist on the game-tying goal. On 5 March 2017 Eriksson suffered a season-ending knee injury after a collision with Anaheim Ducks forward Chris Wagner. Eriksson ended a disappointing first season with the Canucks with 11 goals and 13 assists in 65 games. Eriksson would have another dismal and injury plagued season with the Canucks in 2017-18 finishing with 23 points in 50 games. During the 2018-19 NHL season, Eriksson was able to stay healthy, but only scored 29 points in 81 games.