The 20-year-old from Carluke made his first team debut against Kilmarnock on 27th April 2013 but his subsequent progress was hampered by injury.
Now fully fit, Craig came on as a substitute against Ross County at Pittodrie in November and has made six appearance in this season's campaign to date.
Manager Derek McInnes said: "We've always been aware of Craig's ability and he's really taken his chance in recent weeks when asked.
"He loves it here at Pittodrie and it wasn't a hard decision for him to agree to say on for a further two years during which I'm sure he'll have a big part to play."
Source: RedWeb
Image: PA