Williams was drafted by the Texas Rangers in the second round of the 2012 Major League Baseball draft out of high school. He had committed to Texas A&M University, but signed with the Rangers for a $500,000 signing bonus. He made his professional debut in 2012 with the Arizona League Rangers, hitting.313/.375/.448 with two home runs in 201 at bats over 48 games. He played the 2013 season with the Hickory Crawdads. He played in 95 games during the season, hitting.293/.337/.543 with 17 home runs, 15 walks, and 110 strikeouts over 376 at bats. Prior to the 2014 season, Williams was ranked by Baseball America as the Rangers fourth-best prospect, and the 97th-best overall in baseball. Playing for three minor league teams in 2014, he hit.283 with 22 walks and 140 strikeouts in 452 at bats. After the season he played for the Surprise Saguaros in the Arizona Fall League, and hit.277 with 1 walk and 32 strikeouts in 112 at bats. On July 31, 2015, Williams was traded to the Philadelphia Phillies along with Matt Harrison, Jorge Alfaro, Jake Thompson, Alec Asher, and Jerad Eickhoff in exchange for Cole Hamels and Jake Diekman. In 2016, in 125 games for the Lehigh Valley IronPigs in the International League in Triple A, Williams batted.258 with 13 home runs and 64 RBIs along with a.287 on-base percentage. He walked 19 times, and struck out 136 times in 497 at bats. That season, Manager Dave Brundage benched him a number of times, for disciplinary reasons ranging from him failing to hustle to him showing up opponents. Williams reacted to his benching by his manager, saying: "That’s his decision. I can’t do anything about it." Phillies manager Pete Mackanin said he was concerned about Williams "because we’re trying to establish a culture of playing the game the right way and we want players who grind it out, we want players who show energy." The Phillies added him to their 40-man roster after the 2016 season. In 2017, he batted.280/.328/.511 with 15 home runs and 44 RBIs for Lehigh Valley, and walked 16 times while striking out 90 times in 282 at bats. In 2019 he batted.316/.381/.574 with 10 home runs and 25 RBIs for Lehigh Valley, and walked 14 times while striking out 52 times in 190 at bats.
Philadelphia Phillies (2017-present)
The Phillies promoted Williams to the major leagues on June 30, 2017, and Williams made his MLB debut that night. On July 9, Williams hit his first MLB home run off of Trevor Cahill of the Padres. Nine days later, on July 18 Williams hit his first career grand slam against the Brewers. As to his defense in the outfield and baserunning, beat writer Matt Gelb wrote in the Philadelphia Inquirer: "Progress is needed on defense and the bases. Williams has overcome bad reads in the outfield with his speed. But he’s shown cracks there. And, as a baserunner, Williams has committed mental mistakes. His instincts are not the sharpest. Sometimes, raw talent can rise above that." He batted.288/.338/.473 for the 2017 season with the Phillies with 12 home runs, one stolen base, and 55 RBIs, and walked 20 times while striking out 97 times in 313 at bats. On defense, he had a -9 Defensive Runs Saved rating, the worst in the National League among right fielders. In 2018 he batted.256/.330/.434, with 16 home runs, 3 stolen bases, 58 RBIs, and 111 strikeouts in 407 at bats. On defense, he had a -15 Defensive Runs Saved rating, the 2nd-worst in the National League among right fielders, behind Bryce Harper. In 2019 he batted.151/.196/.245, with 2 home runs, 5 RBIs, and 43 strikeouts in 106 at bats. His batting average, on base percentage, and OPS were the lowest of all 219 NL batters who had 100 or more plate appearances, and his strikeout percentage was the highest.
Personal life
Williams began dating Brianna Goodfriend while he played for the Frisco RoughRiders.