MacKinnon was the first player to be selected No. 1 by the Avalanche since the franchise moved to Colorado in 1995.
The 17-year-old MacKinnon led the Halifax Mooseheads to a Quebec Major Junior Hockey League title and first Memorial Cup championship last season.
MacKinnon had 75 points in 44 games for Halifax during the regular season.
"The signing of this first NHL contract represents for me another step toward becoming a professional hockey player," MacKinnon said in a statement. "I am excited and thrilled to have been drafted by the Avalanche, and I am already working very hard in order to be ready physically and mentally for training camp."
"We are happy to have Nathan under contract and anxious to see him at training camp," Avalanche executive vice president of hockey operations Joe Sakic said in a statement. "His presence will bring additional speed and talent to our team, as well as a lot of excitement to our fans." Earlier this month, Avalanche coach Patrick Roy said MacKinnon likely would be his third-line center.