Portland Trail Blazers (2012–2015)
In March 2012, Barton decided to forgo his final two years of eligibility and declare for the 2012 NBA draft. He was selected by the Portland Trail Blazers with the 40th overall pick. On December 7, 2012, he was assigned to the Idaho Stampede of the NBA Development League. He was recalled on December 9, reassigned on January 6, and recalled again on January 9. He made his first NBA start on April 10, 2013 against the Los Angeles Lakers.
On February 26, 2014, Barton recorded a season-high 20 points and a career-high 11 rebounds in 124–80 win over the Brooklyn Nets. In a televised interview following the game, when asked by a reporter about a spontaneous "Will Barton" chant that had broken out late in the contest, the guard replied, "I like to think I'm the people's champ," thereby instantly giving birth to a new nickname and a Trail Blazers meme. He went on to record 17 points and six rebounds on May 12 to help Portland win Game 4 of their semi-final match-up against the San Antonio Spurs.
Denver Nuggets (2015–present)
On February 19, 2015, Barton was traded, along with Víctor Claver, Thomas Robinson and a lottery-protected 2016 first-round pick, to the Denver Nuggets in exchange for Arron Afflalo and Alonzo Gee.
On August 7, 2015, Barton re-signed with the Nuggets. On November 13, 2015, he scored a career-high 26 points in a 107–98 win over the Houston Rockets. He topped that mark on December 20 with 32 points against the New Orleans Pelicans. Barton's strong pre-Christmas play earned him recognition as a possible contender for the 2015–16 Sixth Man of the Year award. Over the Nuggets' first 29 games of the season, Barton averaged 15.7 points, 6.1 rebounds, 2.3 assists and 1.1 steals in 29.0 minutes per game off the bench.
Barton appeared in just six of the Nuggets' first 18 games of the 2016–17 season. He played in the first three games before missing the next nine after spraining his left ankle. He then returned for three before missing another for personal reasons, and then a further two with another left ankle complaint. On January 17, 2017, he had season highs of 26 points and eight assists in a 127–121 win over the Los Angeles Lakers. On February 6, 2017, he scored a then season-high 31 points and hit five three-pointers in a 110–87 win over the Dallas Mavericks. On March 13, 2017, in a 129–101 win over the Los Angeles Lakers, Barton scored 22 points and went 3 of 4 behind the arc and 6 of 9 overall in his most productive outing since the All-Star break. Prior to the game against the Lakers, Barton had made just five of his previous 21 three-point tries. On March 16, 2017, he scored a career-high 35 points in a 129–114 win over the Los Angeles Clippers.
On November 11, 2017, Barton had season highs with 26 points and nine rebounds in a 125–107 win over the Orlando Magic. On November 30, 2017, Barton capped a career-high 37 points with a driving layup with 3.2 seconds left to lift the Nuggets to a 111–110 win over the Chicago Bulls. On February 3, 2018, he scored a team-high 25 points in a 115–108 win over the Golden State Warriors.
On July 9, 2018, Barton re-signed with the Nuggets. On October 20, 2018, in just the second game of the season, Barton injured his right hip on a reverse layup in the third quarter of Denver's 119–91 win over the Phoenix Suns. He was subsequently ruled out for five to six weeks after undergoing surgery on October 23.He missed longer than expected, returning to action on January 12, 2019 against the Suns after missing 38 games; in 16 minutes, he scored six points on 2-of-10 shooting. On February 28, he recorded 21 points and 13 rebounds in a 111–104 loss to the Utah Jazz.