On July 22, 2013, Edwards along with Mike Olt, Justin Grimm, and a player to be named later were traded to the Chicago Cubs for Matt Garza. He was sent to the Daytona Cubs, where he had a 1.96 ERA and 33 strikeouts over 23 innings. After the season, he was named the MiLB Pitcher of the Year. Prior to the 2014 season, he was ranked by Baseball America as the 28th best prospect in baseball. He spent the 2014 season with the Tennessee Smokies where he compiled a 1-2 record and 2.44 ERA over ten starts. On November 20, 2014, Edwards was added to the Cubs 40-man roster, in order to protect him from the Rule 5 Draft. He began 2015 with Tennessee and was promoted to the Iowa Cubs in May.
2015 season
On September 7, 2015, Edwards made his Major League debut for the Cubs against the St. Louis Cardinals at Busch Stadium. In 36 appearances out of the bullpen between both Tennessee and Iowa prior to his callup, he was 5-3 with a 2.77 ERA and 75 strikeouts over innings.
2016 season
Edwards began 2016 with Iowa. He was recalled May 11 to Chicago, but returned to Iowa the next day. He was recalled once again on June 20 and spent the rest of the season with Chicago. On September 1, Edwards recorded his first Major League save against the San Francisco Giants. Edwards finished the 2016 season with a 3.75 ERA in 35 innings pitched. On October 25, Edwards along with teammates Addison Russell, Dexter Fowler, and Jason Heyward became the first African-Americans to play for the Cubs in a World Series game. In Game 3, he struck out the side in relief duty in the top of the sixth inning against the Cleveland Indians, becoming the first African-American to pitch for the Cubs in a World Series game. Edwards appeared in the bottom of the 10th inning of Game 7, where he recorded the first two outs of the inning and surrendered one run. The Cubs went on to win their first World Series in 108 years.
2017 season
2017 was Edwards' first full season in the major leagues; he was 5-4 with a 2.98 ERA and 94 strikeouts in relief innings pitched. Edwards struggled in the division series against the Washington Nationals, pitching innings and allowing six runs. Notably, he allowed a game-tying two-run home run to Bryce Harper in the eighth inning of Game 2. Edwards' performance improved during the league championship series against the Los Angeles Dodgers, again pitching innings, but this time allowing no runs.
2018 season
In 2018, Edwards posted a 3–2 record and recorded 67 strikeouts and a 2.60 ERA in 52 innings.
2019 season
Edwards struggled in the beginning of 2019. He pitched in four games between March 30 and April 5, recording only five outs. He allowed three hits, five walks, and six runs. He was optioned to the Iowa Cubs on April 6 to work through his mechanics. The Cubs recalled Edwards on May 6.
San Diego Padres
On July 31, 2019, Edwards was traded to the San Diego Padres in exchange for Brad Wieck. On November 4, 2019, he cleared waivers and elected free agency.
Seattle Mariners
On December 4, 2019, Edwards signed a one-year contract with the Seattle Mariners.
Personal life
Edwards and his fiancée, Anquinette Smith, welcomed their first child in August 2015, and their second in July 2018.
Miscellaneous
Edwards was known as "C.J." in the minor leagues, a name which Cubs manager Joe Maddon continues to use. Edwards also earned the nickname "The String Bean Slinger" for his skinny physique, which he has adopted for the back of his personalized jersey during the annual Players Weekend.