Following his graduation from VMI, Williams signed with the French team JDA Dijon. After playing in France he played in the NBA Development League. He was drafted by the Sioux Falls Skyforce. He averaged 26 points and 5.7 rebounds per game with Sioux Falls before signing a ten-day contract with the Golden State Warriors on March 2, 2010. On March 12, 2010 the Golden State Warriors re-signed Williams to another 10 day contract and later, on March 22, 2010, the Warriors signed Williams for the remainder of the season.
On June 21, 2011 Williams signed a qualifying offer by the Warriors, thus becoming a restricted free agent.
Following the announcement of the 2011 NBA Lockout, on August 23, 2011 Williams signed a contract with the Spanish team Caja Laboral.
On December 11, 2011, the Warriors rescinded their qualifying offer to Williams to conserve cap space to sign Los Angeles Clippers center DeAndre Jordan to an offer sheet, making Williams an unrestricted free agent.
On December 15, 2011 Williams signed a two year deal reportedly worth $5 million with the Charlotte Bobcats.
On July 19, 2013, Williams signed a multi-year deal with the Houston Rockets. However, he was later waived on October 28, 2013.
On December 20, 2013, Williams was acquired by the Tulsa 66ers of the NBA D-League. On March 6, 2014, Williams signed a 10-day contract with the Oklahoma City Thunder. On March 11, 2014, he was assigned back down to the Tulsa 66ers. He was recalled the same day after playing in the 66ers 109-117 loss to the LA D-Fenders. On March 15, 2014, he was re-assigned to the 66ers. On March 16, 2014, he was not offered a second 10-day contract, and returned to the 66ers. On March 28, 2014, he signed another 10-day contract with the Thunder. On April 7, 2014, he was again not offered a second 10-day contract by the Thunder.