Denver Nuggets (2014–present)
On June 26, 2014, Harris was selected with the 19th overall pick in the 2014 NBA draft by the Chicago Bulls. He was later traded to the Denver Nuggets on draft night along with Jusuf Nurkić (16th pick) and a second round pick for Doug McDermott (11th pick) and Anthony Randolph. On July 31, he signed his rookie scale contract with the Nuggets after averaging 18.6 points, 4.2 rebounds, 2.6 steals and 2.0 assists in five Summer League games for the team. After missing the first seven games of the 2014–15 season due to a back injury, Harris made his NBA debut on November 14 against the Indiana Pacers. In 18 minutes of action, he recorded 13 points, 3 rebounds, 2 assists, 2 steals and 1 block in a 108–87 win. He did not manage to eclipse that scoring total for the rest of the season, tying his season high of 13 points in the second last game of the season against the Los Angeles Clippers.
In July 2015, Harris re-joined the Nuggets for the 2015 NBA Summer League. On October 11, the Nuggets exercised their third-year team option on Harris' rookie scale contract, extending the contract through the 2016–17 season. He earned the Nuggets' starting shooting guard spot for the 2015–16 season, going on to score a then career-high 20 points on November 20 in a loss to the Phoenix Suns. Harris missed a string of six games between November 28 and December 8 due to a concussion he suffered against the San Antonio Spurs on November 27. He returned to action on December 11 against the Minnesota Timberwolves, starting in his 17th game of the season and scoring 12 points in a 111–108 win. In the following game on December 14, Harris scored a career-high 21 points in a 114–108 win over the Houston Rockets. He tied that career high on December 22, scoring 21 points in a loss to the Los Angeles Lakers. Harris had another 21-point effort on March 4, 2016 in an overtime loss to the Brooklyn Nets. In 2015–16, Harris was just one of seven players to average 12+ points, shoot 47% from the field, 35% from three, and 81% from the free throw line. During the 2016 off-season, he was part of the USA Men's Select Team, a team selected to train with the USA Basketball Men's National Team in preparation for the 2016 Rio Summer Olympics.
In July 2016, Harris re-joined the Nuggets for the 2016 NBA Summer League. On October 5, 2016, he was ruled out for four to six weeks with a partially torn right groin. On October 21, the Nuggets exercised their fourth-year team option on Harris' rookie scale contract, extending the contract through the 2017–18 season. He missed the first four games of the 2016–17 season with the groin injury, but upon returning to action in early November, he sustained a foot injury after just five games. He was subsequently sidelined for up to four weeks. In his first game back on December 15 after missing 16 straight, Harris scored 18 points in a 132–120 win over the Portland Trail Blazers. Four days later, he scored a career-high 24 points in a 117–107 win over the Dallas Mavericks. On February 24, 2017, he set a new career high with 25 points in a 129–109 win over the Brooklyn Nets. He bested that mark on March 8, 2017, scoring 26 points in a 123–113 loss to the Washington Wizards. On March 20, 2017, he set a new career high with 28 points in a 125–124 loss to the Houston Rockets.
On October 12, 2017, Harris signed a four-year, $84 million contract extension with the Nuggets. On December 13, 2017, he scored a career-high 36 points in a 124–118 loss to the Boston Celtics. On January 3, 2018, he scored 28 of his 36 points in the first half of the Nuggets' 134–111 win over the Phoenix Suns. On February 1, 2018, he made the winning 3-pointer at the buzzer and finished with 25 points to lift the Nuggets to a 127–124 victory over the Oklahoma City Thunder. On April 9, 2018, Harris returned from an 11-game absence to score 12 points off the bench in an 88–82 win over the Portland Trail Blazers.
Harris missed 11 games in December due to a right hip injury, and five games in January with hamstring tightness. He later missed seven games with a right adductor strain.