Fehr was a first-round draft pick in the 2003 NHL Entry Draft by the Washington Capitals, chosen 18th overall. Fehr played 11 games with the Capitals in the 2005–06 season, going scoreless with two penalty minutes and an even plus-minus rating. He spent the rest of the season with Washington's American Hockey League affiliate, the Hershey Bears, and ultimately returned to Hershey to start the 2006–07 season. He played a brief callup with the Capitals early into the 2006–07 season, and was later recalled again in late January. His first game back with the Capitals came on January 27, 2007; in the same game, Fehr scored his first career NHL goal, which would be the eventual game-winner in the Capitals' 7–3 victory over the Carolina Hurricanes. Fehr recovered from a herniated disc injury and was called up to the Capitals on February 4, 2008. On July 8, 2011, Fehr was traded to the Winnipeg Jets in exchange for a fourth-round draft pick in 2012 and prospect Danick Paquette. Fehr underwent surgery on his right shoulder in October 2011 and eventually missed the majority of the season due to recurring problems with the shoulder. Fehr was not given a qualifying offer by the Jets at the end of the 2011–12 season, thereby making him an unrestricted free agent. Due to the 2012–13 NHL lock-out, Fehr signed his first European contract with HPK of the FinnishSM-liiga on October 23, 2012. He then returned to the Capitals organization after signing a one-year, $600,000 contract on January 13, 2013. At the conclusion of the 2014–15 season, and as an impending free agent, Fehr underwent elbow surgery for a recovery period of 4–6 months. With his injury delaying his involvement for the following season, Fehr was later signed to a three-year, $6 million contract with the Pittsburgh Penguins on July 28, 2015. Fehr made his debut, after missing the first 10 games of the Penguins season, against the Toronto Maple Leafs on October 31, 2015. He scored a shorthanded goal and added an assist in a 4–0 Penguins victory. He scored another shorthanded goal in the next game, a 3-2 win against the Vancouver Canucks, and thus became the first player in NHL history to score a shorthanded goal in his first two games with a team. In 2016, Fehr won a Stanley Cup with the Penguins. On February 28, 2017, one day before the trade deadline, Fehr was placed on waivers for the purpose of being sent to the American Hockey League. He had largely been played on the Penguins' fourth line, and was seen as a player to bench once several injured Penguins' players returned from injury. In the weeks approaching the deadline, Fehr had been a frequent healthy scratch. He cleared the following day, but was then traded to the Toronto Maple Leafs, alongside Steven Oleksy and a 2017 fourth round pick, in exchange for Frank Corrado in an effort to clear cap space for the Penguins. Fehr was a healthy scratch for the Maple Leafs for nine games due to a plethora of forwards, but an injury to Nikita Soshnikov on March 20 allowed Fehr to make his season debut two nights later against the Columbus Blue Jackets. Fehr played adequately in his limited role on the fourth line but broke his left hand in the game, effectively ending his season. Heading into the 2017–18 season, Fehr battled out with Dominic Moore, who was signed by Toronto in the off-season, for the fourth line centre spot. After appearing in four games for the Maple Leafs, Fehr was placed on waivers on October 23, effectively meaning Fehr lost the role to Moore. On November 7, Fehr was loaned to the San Diego Gulls, AHL affiliate of Anaheim Ducks by the Toronto Maple Leafs. On February 20, 2018, the Maple Leafs traded Fehr to the San Jose Sharks in exchange for a seventh-round pick in the 2020 draft. On March 12, 2018, Fehr scored his first goal as a San Jose Shark, giving the Sharks a 2-1 lead, in a 5-3 victory against the Detroit Red Wings. Fehr was used in a fourth-line role, adding a physical edge and veteran presence, he appeared in 10 games through the playoffs, posting a goal and assist. As a free agent in the off-season, Fehr left the Sharks and secured a one-year, $1 million contract with the Minnesota Wild on July 1, 2018. Playing on the Wild's fourth-line, Fehr featured in 72 games during the 2018–19 season, contributing with 7 goals and 15 points as Minnesota missed the playoffs for the first time in 7 seasons. As a free agent from the Wild, Fehr returned to Europe in agreeing to a one-year contract with Swiss club, Genève-Servette HC of the NL, on July 20, 2019. On May 27, 2020, it was officially announced that Fehr would not return to the team for the 2020/21. Despite this announcement, Fehr was brought back to the team on July 13, 2020, agreeing to a one-year deal for the 2020/21 season.