In the summer of 2007, Mitchell attended the San Jose Sharks' training camp, and on October 4, 2007, he played his first NHL game against the Edmonton Oilers.
On April 10, 2008, Mitchell scored his first career NHL playoff goal in the second game of the first round series against the Calgary Flames, assisted by Ryane Clowe and Craig Rivet.
After a 2008–09 season marred by injury, Mitchell became a restricted free agent in the off-season, eventually re-signing with the Sharks on a three-year, $4.1 million contract.
[1] He played his first official game as a Bull two days later and scored the only regulation goal for the team at their home arena, the Cow Palace, in a 2–1 shootout loss.
In the following 2014–15 season, Mitchell was again moved at the NHL trade deadline – he was shipped to the Montreal Canadiens in exchange for Jack Nevins and a seventh-round draft pick in 2016 on March 2, 2015.
[5] During the 2017–18 season, having played in 11 scoreless games in his fourth year within the Canadiens, Mitchell was traded to the Los Angeles Kings in exchange for a conditional fifth-round pick on November 23, 2017.
As a free agent from the Kings, Mitchell opted to embark on a career abroad, agreeing to a one-year contract in Switzerland, worth CHF 700,000 with Lausanne HC of the National League (NL) on July 17, 2018.