In 2014, Wilson started with Palm Beach before being promoted to the Double-A Springfield Cardinals.[7] He hit .302 with 5 home runs and 41 RBI before his season came to an end after 66 games due to a knee injury.[8] Wilson split the 2015 season between Springfield and the Triple-A Memphis Redbirds, slashing .230/.302/.407 with 18 home runs and 77 RBI. During the 2016 season, he split time between Memphis and Springfield, finishing the year batting .223 with 14 home runs.[9] In 2017, Wilson played for Springfield, posting a .248 batting average with 17 home runs and 66 RBI in 129 games for Springfield.
In 2018, Wilson retooled his swing over the off-season and emerged as a more successful hitter, quickly progressing in the Nationals organization from the Double–A Harrisburg Senators to the Triple–A Syracuse Chiefs while playing multiple infield and outfield positions. With a batting average above the .300 mark near the International League season's midway point, Wilson was named to represent the Chiefs in the 2018 Triple–A All-Star Game.[11] He finished the season with a .278/.347/.408 slash line with 7 home runs and 55 RBI in 108 games between the two levels, as well as four rehab games with the rookie–level Gulf Coast League Nationals.[12]
Wilson was invited to participate in major league spring training before the 2019 season with the Nationals.[13] Wilson began the year with the Triple–AFresno Grizzlies, and hit .313 with 15 home runs and 48 RBI across 54 games before he left the team on June 9.[14]
Lotte Giants
On June 10, 2019, Wilson officially signed with the Lotte Giants of the KBO League on a one-year, $400,000 deal.[15] In 68 games for Lotte, Wilson batted .251/.351/.433 with 9 home runs and 37 RBI. He became a free agent following the 2019 season.
Washington Nationals (second stint)
On February 12, 2020, Wilson signed a minor league contract to return to the Washington Nationals organization.[16] However, Wilson did not play in a game in 2020 due to the cancellation of the minor league season because of the COVID-19 pandemic.[17] He became a free agent on November 2.[18]
Oakland Athletics
On November 12, 2020, Wilson signed a minor league contract with the Oakland Athletics organization.[19] He was assigned to the Triple-A Las Vegas Aviators to begin the 2021 season, and hit .288/.385/.630 with 14 home runs and 46 RBI in 49 games. On July 8, 2021, Wilson was selected to the 40-man roster and promoted to the major leagues for the first time.[20] Wilson made his MLB debut on July 10, replacing Tony Kemp at second base in the 10th inning and popping out in his only at-bat. He recorded his first career hit on July 20, a single off of José Suárez in a 6–0 win over the Los Angeles Angels. In 7 at-bats for the A's, Wilson hit .143.
On July 31, Wilson was designated for assignment by the A's.[21]
Houston Astros
On August 2, 2021, Wilson was claimed off of waivers by the Houston Astros.[22] He was optioned to the Triple–A Sugar Land Skeeters. Wilson appeared in six games for the Astros, going 2–for–13 (.154) before he was outrighted off of the 40–man roster on September 13.[23] He elected free agency on November 7.