Cairns Taipans (2014–2016)
On August 6, 2014, Craig signed with the Cairns Taipans for the 2014–15 NBL season. On December 10, 2014, he was named Player of the Week for Round 9 after his double-double of 19 points and 10 rebounds helped the Taipans over the line against the Adelaide 36ers on December 6. On December 19, he scored a season-high 28 points in a 90–86 loss to the Adelaide 36ers. Craig helped lead the Taipans to a win over the New Zealand Breakers in the final game of the regular season on February 22 to finish on top of the ladder for the first time in club history with a win/loss record of 21–7. After sweeping the Perth Wildcats in the semi-finals, the Taipans faced the Breakers in the Grand Final series, going on to lose the series 2–0 following a game-winning shot by Ekene Ibekwe in Game 2. In 32 games for the Taipans in 2014–15, he averaged 8.9 points, 5.7 rebounds and 1.2 assists per game coming off the bench as a back-up small forward to Stephen Weigh.
On August 7, 2015, Craig recommitted to the Cairns Taipans, re-signing with the club for the 2015–16 NBL season. He averaged just 6.0 points over the first four games of the season before picking up his level of production on October 24, recording 18 points and 10 rebounds in a loss to Melbourne United. He continued that good form over the next three games, scoring 17, 19 and 17 respectively, raising his averages up to 11.9 points and 4.9 rebounds after eight games. On January 13, 2016, in a loss to United, Craig became the first Taipans player to have at least 20 points and 15 rebounds in a game since Nathan Jawai did so in 2008.] The Taipans finished the season outside the top four, thus missing the playoffs with a 12–16 win/loss record. Craig appeared in all 28 games for the Taipans, averaging 11.6 points, 6.1 rebounds, 1.0 assists and 1.1 blocks per game.
Wellington Saints (2015–2016)
On March 17, 2015, Craig signed with the Wellington Saints for the 2015 New Zealand NBL season. On April 17, he scored 41 points on 16-of-22 shooting against the Taranaki Mountainairs, ending the game just one point short of the all-time Wellington Saints scoring record, held by Mike Efevberha with 42. On April 21, he was named Player of the Week for Round 3 after also recording 25 points and 14 rebounds against the Southland Sharks on April 18. On June 18, he earned co-Player of the Week honors for Round 11 alongside Southland's Tai Wesley. The following day, he was ruled out for the rest of the regular season with a knee injury. Craig returned to the Saints line-up for their semi-final clash against the Nelson Giants. He managed a mere 15 minutes of action and scored just three points in a 97–85 win that advanced the Saints through to the Grand Final where they faced the Southland Sharks. However, Craig fell just short of claiming championship success for a second time in a matter of months as he suffered another grand final defeat, this time at the hands of the No. 1 seeded Sharks who defeated the Saints 72–68. Despite missing the final three games of the regular season, Craig was named league MVP for the 2015 season while also earning All-Star Five honors. In 17 games for the Saints, he averaged 20.4 points, 9.1 rebounds, 1.8 assists, 1.0 steals and 1.2 blocks per game.
On January 26, 2016, Craig re-signed with the Saints for the 2016 New Zealand NBL season. He helped lead the Saints to two Round 1 wins, subsequently earning co-Player of the Week honors for the opening round. On April 20, he was named co-Player of the Week for Round 6 after scoring 34 points against the Super City Rangers on April 14, and 18 points against the Canterbury Rams on April 15. He led the Saints back to the Grand Final where they faced the Super City Rangers. With a 15-point effort, Craig helped the Saints claim their ninth NBL title with a 94–82 win. He appeared in all 20 games for the Saints in 2016, averaging 20.9 points, 9.8 rebounds, 2.9 assists and 1.3 steals per game. He subsequently earned All-Star Five honors for the second straight year.
Brisbane Bullets (2016–2017)
On May 9, 2016, Craig signed a two-year deal with the Brisbane Bullets, a team re-joining the NBL for the 2016–17 season after an eight-year hiatus. He made his debut for the Bullets in their season opener on October 6, scoring a team-high 16 points in a 72–65 win over the Perth Wildcats. Two days later, he recorded nine points and 17 rebounds (career high in the NBL) in a 77–73 win over the Sydney Kings, helping the Bullets start the season 2–0. On October 16, he scored a team-high 22 points in a 96–93 overtime loss to the Adelaide 36ers. On November 19, he scored a career-high 34 points in a 105–87 win over the 36ers. In the Bullets' regular season finale on February 11, 2017, Craig recorded game highs of 30 points and 18 rebounds (a new career high) in a 106–79 loss to the Illawarra Hawks. He became just the second player in eight years to have 30 points and 18 rebounds in a game, the other being Josh Childress (36 points, 19 rebounds in November 2014). The Bullets finished their first season back in the NBL in last place with a 10–18 record. At the NBL's end-of-season awards night, Craig was named the recipient of the NBL Best Defensive Player Award and earned All-NBL Second Team honors. Craig appeared in all 28 games for the Bullets in 2016–17, averaging 15.2 points, 8.0 rebounds, 1.5 assists and 1.1 steals per game.
Gold Coast Rollers (2017)
On January 18, 2017, Craig signed with the Gold Coast Rollers for the 2017 Queensland Basketball League season. On May 13, 2017, in the Rollers' third game of the season, Craig recorded 42 points and 12 rebounds in a 95–92 win over the South West Metro Pirates. He was subsequently named Player of the Week for Round 3. On May 27, 2017, he recorded 32 points and 16 rebounds in a 107–100 loss to the Logan Thunder. On June 16, 2017, he recorded 40 points and 13 rebounds in a 93–79 loss to the Mackay Meteors. In 10 games for the Rollers, he averaged 28.2 points, 9.9 rebounds, 4.0 assists, 1.5 steals and 1.0 blocks per game.
Denver Nuggets (2017–present)
In late June 2017, Craig returned to the United States to join the Denver Nuggets for 2017 NBA Summer League. After impressing the Nuggets during the Summer League, he signed a two-way contract with the team on July 19, 2017. On the two-way deal, Craig spent most of the season in the NBA G League with the Sioux Falls Skyforce due to the 45-day limit he could spend with the Nuggets. Craig made his NBA debut on November 28, 2017, in the Nuggets' 106–77 loss to the Utah Jazz, joining Mike Gibson as the only players in Upstate history to play in an NBA game. Craig made his first career start on December 15, 2017, against the New Orleans Pelicans, scoring six points in a 117–111 overtime win. Three days later, he scored a season-high 14 points in a 95–94 loss to the Oklahoma City Thunder. On April 1, 2018, he recorded seven points and a season-high eight rebounds in a 128–125 overtime win over the Milwaukee Bucks.
On July 10, 2018, Craig signed a two-year, $4 million contract with the Nuggets. On February 1, 2019, he scored a career-high 22 points in a 136–122 win over the Houston Rockets. In game four of the Nuggets' first-round playoff series against the San Antonio Spurs, Craig scored 18 points with five 3-pointers in a 117–103 win.