Duclair spent three seasons with the Quebec Remparts of the Quebec Major Junior Hockey League. He scored an impressive 50 goals in 59 games during the 2013–14 season. Duclair was rewarded for his outstanding play being named to the QMJHL First All-Star Team.
On January 2, 2014, Duclair signed a three-year, entry-level contract with the New York Rangers. Duclair impressed the Rangers with his performance in the 2014–15 pre-season, leading the team with five points in five games. On October 6, 2014, defenceman Steven Kampfer and centre Andrew Yogan were traded to the Florida Panthers in exchange for forwardJoey Crabb, securing an opening-night roster position for Duclair. Duclair scored his first NHL goal on October 27, 2014, against Darcy Kuemper of the Minnesota Wild. On January 6, 2015, Duclair was assigned to the Quebec Remparts for the remainder of the 2014–15 season. On March 1, 2015, while playing with the Remparts, Duclair was traded to the Arizona Coyotes in exchange for Keith Yandle and Chris Summers.
Arizona Coyotes
Arizona Coyotes general manager Don Maloney confirmed fan speculation by stating that he acquired Duclair from the New York Rangers in the hopes that he would develop line chemistry with a rookie Arizona already possessed, Max Domi. This was due to the fact that during the 2015 World Junior Ice Hockey Championship, Duclair and Domi both showed visible chemistry and were key components in leading Canada to gold. On October 14, 2015, Duclair scored his first career NHL hat-trick in a 4–0 shut-out win against the Anaheim Ducks. Fellow rookie Max Domi pitched in a goal of his own and an assist on one of Duclair's goals. In Duclair's first full season in the NHL, he developed instant line chemistry with Domi, earning the duo the nickname "The Killer D's". On January 19, 2017, Duclair was demoted to the team's American Hockey League affiliate, the Tucson Roadrunners, due to a lack of production. On March 3, 2017, he returned to the Coyotes. On January 4, 2018, it was reported that Duclair had requested to be traded from the Coyotes.
Chicago Blackhawks
On January 10, 2018, Duclair was traded to the Chicago Blackhawks in exchange for forwards Richard Pánik and Laurent Dauphin. His inconsistency carried over to the Blackhawks, after making an initial impact he finished the season scoreless in his last 14 games and finished the season appearing in 23 games for 8 points for Chicago. On June 25, 2018, as a restricted free agent, Duclair was not tendered a qualifying offer by the Blackhawks and was released to explore free agency.
Columbus Blue Jackets
On July 5, 2018, Duclair signed a one-year, one-way contract worth $650,000 with the Columbus Blue Jackets. In 53 games for the team, Duclair recorded 11 goals and 19 points.
Ottawa Senators
On February 23, 2019, Duclair was traded to the Ottawa Senators in exchange for Ryan Dzingel and a seventh-round pick in 2019. Only a few days before the trade, Blue Jackets head coachJohn Tortorella publicly criticized Duclair, saying that Duclair "doesn't know how to play". On June 17, 2019, Duclair signed a one-year contract with the Senators for the 2019–20 season worth $1.65 million. He immediately became one of Ottawa's top offensive players, recording 21 goals and 30 points in his first 38 games, leading the team in both categories. He was subsequently named as the Senators' representative for the 2020 National Hockey League All-Star Game held on January 25, 2020, in St. Louis. On June 8, 2020, Duclair became an inaugural executive board member the Hockey Diversity Alliance, whose goal is to address intolerance and racism in hockey.