Karierę rozpoczynał w klubach St. Francis High Prep i Buffalo Lightning. W 2001 roku został absolwentem szkoły Saint Francis High School, w której grał w zespole uniwersyteckim Dartmouth College w lidze ECAC Hockey. W pierwszym sezonie znalazł się w drużynie debiutantów ligi ECAC. W 2004 i 2005 roku został wybrany do drużyny gwiazd ligi. Wcześniej 21 lipca 2003 roku został wybrany w drafcie NHL z numerem 148 (12. w piątej rundzie). Na debiut w NHL musiał czekać do 6 października 2005 roku, kiedy to zagrał w meczu przeciwko Detroit Red Wings. Swój pierwszy punkt zdobył prawie miesiąc później – 2 listopada w meczu przeciwko Chicago Blackhawks, a dwa dni później strzelił bramkę w meczu z Edmonton Oilers. W St. Louis zagrał w 233 meczach, po czym 24 listopada 2008 roku został transferowany do Toronto Maple Leafs w zamian za Alexandera Steena oraz Carlo Colaiacovo. W drużynie tej grał z numerem 12. Po rozegraniu 123 rozegranych meczów w Ontario, 3 marca 2010 roku w ramach wymiany został przeniesiony do drużyny Phoenix Coyotes. Po zakończeniu sezonu, 30 sierpnia przesłużył kontrakt z drużyną z Arizony o kolejne dwa lata. Rok później, w sierpniu 2011 roku podpisał kontrakt z klubem Calgary Flames, który w czerwcu 2012 roku przedłużył o 2 lata. Od marca 2014 zawodnik Pittsburgh Penguins. Od lipca 2014 zawodnik New York Rangers. Od marca 2015 zawodnik Winnipeg Jets. Od przełomu września/października 2015 zawodnik New Jersey Devils. Od końca lutego 2016 zawodnik Boston Bruins. Od lipca 2016 zawodnik Carolina Hurricanes, związany dwuletnim kontraktem. We wrześniu 2018 przeszedł do Boston Bruins. Od tego czasu grał w zespole farmerskim, Providence Bruins. W lutym został zwolniony przez Boston Bruins.