Craig was born in Laurieston was signed by Celtic from Grange Rovers in June 1919 and made his first team debut for the club in a 3-2 league win at Kilmarnock on 17 January 1920. The left-half impressed on his debut, scoring two goals, but he was deemed to be too lightweight by Celtic manager Willie Maley and consequently spent most of his time at Parkhead in the reserves.
Maley was only too pleased to offload the player to Alloa Athletic in an exchange deal which saw Craig and two other Celts swapped for Willie Crilley. While Crilley would disappoint in the Hoops, Craig was a huge success at Alloa, so much so that after only one season Rangers bought him for a fee of seven hundred and fifty pounds. Whilst at Ibrox he won; five league championships, two Scottish Cups, two Glasgow Cups and four Charity Cups. Craig retired from football in 1935.
Craig won eight Scotland caps between 1927 and 1930.