Marcus Nilson was drafted in the first round (20th overall) by the Florida Panthers in the 1996 National Hockey League Entry Draft. His hockey style is quite adverse from the typical style of Swedish hockey players. His grit and intensity, especially among the boards, earned him the role of a dependable checker with the ability to add the odd goal/assistant
A talent of Djurgårdens IF in Sweden, Nilson moved to North America in 1998 and played most of his first two years in the American Hockey League.
After three full seasons with the Panthers, he was traded to the Calgary Flames on March 8, 2004 for a second round draft pick (used to select David Booth). In his first opportunity to play in the Stanley Cup Playoffs, Nilson reached the finals and posted 11 points in 26 playoffs games.
He would play for three more years with Calgary. In the summer of 2008, the Flames placed Nilson on waivers and after clearing without being claimed by another club, he was loaned to Lokomotiv Yaroslavl of the Kontinental Hockey League for the season.
Nilson returned to Djurgården for the 2009-2010 season, signing a one-year deal.
He led his team to the playoffs after scoring 24 goals and 51 points. Nilson kept producing points during the playoffs and Djurgården reached the finals against HV71, which they lost 4–2 in games. Nilson played with the New Jersey Devils on a try-out contract in September 2010, but was ultimately not offered a contract for the rest of the season.