On April 3, 1996, just under a year after being drafted, Sopel signed his first professional contract with his draft team, the Vancouver Canucks. Sopel scored his first NHL goal on April 10, 1999 against the Edmonton Oilers' Tommy Salo.
Sopel was traded back to the Canucks during their 2006-07 season, on February 1, 2007, the trading deadline. He missed the first game of the 2007 Stanley Cup Playoffs against the Dallas Stars after he injured his back. The Canucks beat the Stars in quadruple overtime, in the sixth longest game in NHL history.
On August 3, 2005, the Canucks traded Sopel to the New York Islanders for a conditional draft pick in the 2006 NHL Entry Draft. On August 16, just under a week after being traded, Sopel signed a two-year, $4.8-million with the Islanders.
Heading into the 2007-08 season with no contract, Sopel was invited to the Detroit Red Wings' training camp. However, on September 28, 2007, Sopel left Red Wings camp, signing a one-year, $1.5-million contract with the Chicago Blackhawks after the Red Wings had only offered a one-year, $500,000 contract. On January 10, 2007, Sopel signed a 3-year, $7-million contract extension with the Blackhawks, keeping him in Chicago through the 2010-11 NHL season.