McNabb was selected in the second round (37th overall) of the 2006 WHL Bantam Draft. He debuted with the Kootenay Ice during their last three games of the 2006–07 season.
In the 2007–08 season, he appeared in 65 games, scoring 2 goals to go along with 9 assists for 11 points. Additionally, he had one assist in 10 postseason games for the Ice.
In the 2008–09 season, McNabb played in the style of a defensive-focused defenceman, and his numbers reflected it. In 67 games played, he had 10 goals and 26 assists for 36 points, and also accumulated 140 penalty minutes. He also contributed in the postseason yet again with 5 assists in 4 games. In that season, he played in the CHL Top Prospects Game for Team Orr, adding three assists for the squad and going +3 while doing so. He was also a member of Team Canada for the 2009 IIHF World U18 Championships., and the 2008 Ivan Hlinka Memorial, in which he and his team received a gold medal.
On June 26, 2009, McNabb was drafted by the Buffalo Sabres. He attended Athol Murray College of Notre Dame, a prep school in Wilcox, Saskatchewan, where he played alongside former Buffalo Sabre Tyler Myers, also a defenceman.
On May 18, 2011, he was signed by the Sabres to a three-year entry level contract. On November 26, 2011, the Buffalo Sabres recalled McNabb from affiliate the Rochester Americans. McNabb scored his first NHL goal on December 26, 2011 against Tomáš Vokoun of the Washington Capitals.
On March 5, 2014, McNabb, along with his teammate Jonathan Parker, and two draft picks, were traded to the Los Angeles Kings for right winger Hudson Fasching and defenseman Nicolas Deslauriers. At the end of the 2013–14 season McNabb became a restricted free agent and was re-signed by the Kings to a two-year contract. On June 4, 2016, McNabb signed a new two-year contract with the Kings.
On June 21, 2017, having been left exposed by the Kings at the 2017 NHL Expansion Draft, McNabb was selected by the Vegas Golden Knights. He became the first player to wear a Golden Knights jersey at the NHL awards show.
McNabb first played at the junior international stage with Canada West at the World U17 Hockey Challenge in 2008. He Won a gold medal with Team Canada at 2008 Ivan Hlinka Memorial Tournament and later earned a roster spot for the 2009 IIHF World U18 Championships.
He was Invited to take part in Canada’s 2011 National Junior Team selection camp, however failed to make the squad.