Nilsson played with the Flames, wearing number 14, until 1984–85 when he was traded to the Minnesota North Stars for a draft pick that the Flames used to draft Joe Nieuwendyk. Nilsson won his first and only Stanley Cup while playing with the Edmonton Oilers in 1987. He returned to Europe after that season, playing in Italy, Switzerland, Sweden, Austria, and Norway. In 1988–89 he was named Player of the Year in Sweden. He returned to Edmonton for six games in 1995, which made him the last former Atlanta Flames player to play in the NHL. He then played briefly again in Europe until 1998.