Williams was drafted by the Toronto Maple Leafs 220th overall in the 2003 NHL Entry Draft. Williams scored a goal in each of his first three games in the NHL, with each game coming in a different season — he is likely the only player to achieve the odd feat. His NHL debut came on April 18, 2006, versus the Pittsburgh Penguins, which was the Leafs' last game of the season. He scored his first NHL goal on his first NHL shot in a 5-3 victory. The Leafs failed to qualify for the playoffs, and he was sent down to the Marlies. He was recalled to the Leafs on February 23, 2007, and played against the Montreal Canadiens. During this game, Mats Sundin shot the puck at Montreal goaltender David Aebischer and the rebound came straight to Williams, who scored his second NHL goal in a 5-4 loss. Williams was called up on February 27, 2008, and scored that night against the Florida Panthers. In the following 2008–09 season, on December 8, 2008, Williams scored on a pass from Jason Blake and also recorded his first NHL assist in his career against the New York Islanders in a 4 - 2 win on his first game of the season with the Toronto Maple Leafs. In all 4 of his seasons with the Toronto Maple Leafs in which he had been recalled from the minors, he has scored in his first NHL game of the season. On February 9, 2009, he was placed on waivers and was sent back to the Toronto Marlies of the AHL after clearing waivers. On July 7, 2009, as an unrestricted free agent, Williams signed a one-year, two-way deal with the Detroit Red Wings along with Toronto Marlies teammate Kris Newbury. On July 12, 2010, Williams again being an unrestricted free agent, signed with the New York Rangers. With his NHL career at an impasse, on June 15, 2011, Williams signed a one-year contract with European team, EC Red Bull Salzburg of the Austrian Hockey League. On April 16, 2013, Williams signed a one-year contract with Swedish team, VIK Västerås HK. He was the leading goal scorer of the Swedish second-division HockeyAllsvenskan during the 2013–14 season. After three years in Sweden, he moved on to Germany, signing with Deutsche Eishockey Liga side Straubing Tigers on June 29, 2016.