Williams began his career in 1998 with the Karlsruher SC youth setup and played from July 2004 for the SC Freiburg youth and reserve sides. He made his Bundesliga debut for the Freibrug first team on January 22, 2010 against Stuttgart. He would go on to make nine appearances for Freiburg in 2010, two of them being starts.
Williams joined the Bundesliga club Hoffenheim on August 31, 2011. During his first appearance for the club on September 10, 2011, he made an assist in a 4–0 Hoffenheim victory over Mainz.
On June 25, 2013, it was confirmed that Williams joined Reading in the English Championship on a four-year contract. On August 3, Williams made his debut in the season opener against Ipswich Town. He came on as a sub in the second half as Reading won the game 2–1. He scored his first goal for the club on February 1, 2014, in a 3–0 win against Millwall.
On July 4, 2017, Williams signed a two-year contract with newly promoted Premier League side Huddersfield Town after rejecting a new contract with Reading. He made his league debut against Crystal Palace in a 3–0 win. He scored his first goal for Huddersfield in an FA Cup tie against Bolton Wanderers on 6 January 2018. On May 17, 2019, Huddersfield announced that they were releasing Williams at the end of the season.
Pafos
On September 6, 2019, Williams signed for Pafos of the Cypriot First Division. On May 18, 2020, Pafos announced that Williams had left the club by mutual termination of his contract.
International career
Williams represented the Germany under-15 team. However, due to FIFA regulations concerning dual citizenship, he remained eligible to play at the senior level for either Germany or the United States. On September 30, 2011, Williams obtained an American passport, making him eligible to play for the United States national team. He was called up by the United States team for two friendlies in October 2011, and made his first appearance for the U.S. on October 8, 2011 in a 1–0 victory against Honduras. Williams was the first player to earn his first national teamcap under the Americans' new head coachJürgen Klinsmann. On June 5, 2015 Williams scored his first international goal in Amsterdam in a friendly against the Netherlands. The goal was an equalizer for the United States who had been trailing 3–1 against the Dutch. The United States went on to win the game 4–3. On September 8, 2015, he scored a goal in a friendly against Brazil which ended in a 4–1 defeat.