On April 17, 2015, Barber chose to forego his senior year with Miami and signed a three-year entry-level deal with the Capitals. He was assigned to the Capitals' AHL affiliate, the Hershey Bears.[6] He made his professional debut on October 10, 2015, registering two goals in a 5–1 win over the Springfield Falcons.[7]
On December 7, 2018, the Capitals recalled Barber from Hershey after placing T. J. Oshie on injured reserve, though he did not play.[9] He led the Bears with 18 points in 20 appearances for the season before being recalled.[10]
On July 1, 2019, Barber joined the Montreal Canadiens as a free agent, agreeing to a one-year, two-way contract.[11] After participating in the Canadiens training camp, Barber was waived on September 24, 2019. He was reassigned to the Canadiens minor league affiliate, Laval Rocket, to begin the 2019–20 season.[12]
After leading the Rocket in points with 18 (6G, 12A) points in 21 games. The Canadiens decided to recall Barber to the NHL on December 8, 2019. This was his first NHL call-up since playing three NHL games with the Washington Capitals in the 2016–17 season.[13] After playing eight games and registering zero points with the Montreal Canadiens, Barber was sent back to Laval.[14] On February 20, 2020, while with Laval, Barber was traded by the Canadiens along with Phil Varone to the Pittsburgh Penguins in exchange for Joseph Blandisi and Jake Lucchini. He was immediately assigned to join their affiliate, the Wilkes-Barre/Scranton Penguins.[15]
On July 14, 2022, Barber signed as a free agent to a one-year, two-way contract with the Dallas Stars.[18]
Following the conclusion of his contract within the Stars organization, Barber opted to sign his first contract abroad, leaving North America in agreeing to a one-year contract with Kazakh based KHL club, Barys Astana, on August 3, 2023.[19] During the 2023–24 season, on November 24, 2023, having posted 10 goals and 23 points through 28 games with Barys, Barber was traded to Russian club Ak Bars Kazan in exchange for Belarusian Kristian Khenkel.[20]