Klein was drafted by the Nashville Predators in the second round, 37th overall, at the 2003 NHL Entry Draft. He played four years of junior hockey in the Ontario Hockey League, three with the Toronto St. Michael's Majors and one with the Guelph Storm. Following junior hockey, he played the majority of the next three seasons with the Milwaukee Admirals, Nashville's American Hockey League affiliate. During the 2006–07 season on January 26, 2007, Klein scored his first career NHL goal, which came against the Chicago Blackhawks. On July 16, 2008, Klein signed a two-year, $1.3 million contract extension with the Predators. He played a total 63 games with the Predators in the 2008–09 season. In the following season, 2009–10, Klein played his first full season with the Predators, recording two goals and 16 assists for 18 points in 81 games. In September 2012, Nashville signed Klein to a five-year, $14.5 million contract extension. He responded by scoring three goals and handing out 11 assists for 14 points in 47 games during the lockout-shortened 2012–13 season. On January 22, 2014, Klein was traded by the Predators to the New York Rangers in exchange for defenseman Michael Del Zotto. On December 9, 2014, Klein lost part of his left ear on a high stick in the first period of a game against the Pittsburgh Penguins. He had it stitched back on, came back to play, and scored the game-winning goal in overtime. In the 2016–17 season, Klein suffered from back spasms and remained a healthy scratch by New York for most of the teams post-season run. In the offseason, on July 7, at the age of 32, Klein forfeited nearly $3 million in salary from the final one year left on his contract with the Rangers in announcing his retirement from the NHL. Having expressed desire in continuing his career abroad, on July 14, 2017, Klein signed a one-year contract with the ZSC Lions of the National League. He made his NL debut on September 8, 2017, against the SCL Tigers at the Ilfis Stadium and scored his first goal that same day, an OT game-winning goal. After being crowned Swiss champion in April 2018, Klein signed a one-year contract extension with the Lions on May 23, 2018. Following his second season with the Lions, enduring a disappointing 2018–19 for ZSC in failing to qualify for the post-season, Klein announced his retirement from his professional career on March 25, 2019.