The Colorado Rockies selected Dahl in the first round, with the tenth overall selection, of the 2012 MLB draft. Dahl signed with the Rockies, receiving a $2.6 million signing bonus, rather than follow through on his commitment to attend Auburn University. He made his professional debut for the Grand Junction Rockies of the Rookie-levelPioneer League, hitting.379/.423/.625 with nine home runs and 57 RBIs. He was named the Pioneer League's most valuable player. Prior to the 2013 season, Dahl was ranked as the Rockies second best prospect by Baseball America. He was also ranked as the 58th best prospect in baseball by MLB.com. The Rockies suspended Dahl at the beginning of the season, reportedly because he missed a team flight, and played in ten games for the Asheville Tourists of the Class ASouth Atlantic League, missing the remainder of the season due to a torn hamstring. Dahl began the 2014 season with Asheville, and was promoted to the Modesto Nuts of the Class A-AdvancedCalifornia League in July. Between Asheville and Modesto, Dahl batted.299, hit 14 home runs, and stole 21 bases for the season. On May 28, 2015, while playing for the New Britain Rock Cats of the Class AAEastern League, Dahl collided with a teammate during a game while chasing a fly ball, and suffered a spleen laceration. After surgery to repair the damage, Dahl opted to have his spleen removed, rather than waiting for it to heal, in order to return to baseball with less recovery time. Allowing it to heal would have cost Dahl the remainder of the season, while removing it left him with a recovery time of four to six weeks. He resumed playing baseball in July, with a six-game rehabilitation stint with the Boise Hawks of the Class A-Short SeasonNorthwest League, before returning to New Britain. Dahl finished the season with a.278 batting average, six home runs, and 22 stolen bases. The Rockies invited Dahl to spring training as a non-roster player in 2016. Dahl began the 2016 season with the Hartford Yard Goats of the Eastern League. After he batted.278 with 13 home runs, 45 RBIs, and 16 stolen bases for Hartford, the Rockies promoted Dahl to the Albuquerque Isotopes of the Class AAAPacific Coast League. Dahl appeared in the All-Star Futures Game as an injury replacement for Austin Meadows. After batting.484 in 16 games for Albuquerque, the Rockies promoted Dahl to MLB on July 25, 2016, and he made his MLB debut that night as the Rockies' starting left fielder. Dahl recorded his first MLB hit off the Baltimore Orioles' Yovani Gallardo during his debut. On August 11, 2016, Dahl pushed a career-opening hitting streak to 17 games, tying the MLB record set by Chuck Aleno in 1941. The hitting streak ended at 17 games. During spring training in 2017, Dahl had a stress fracture in a rib, making it painful to swing the bat. After developing back spasms while rehabilitating in July, the Rockies shut Dahl down for the season. In 2019, Dahl played 100 games, hitting.302 with 15 home runs and 61 RBI. He was named to the National League All-Star roster and recorded a single in the All-Star Game.