Born in Dunfermline, he started his career at Alloa Athletic, breaking into their first-team at the age of 16. He was then signed by Scottish Premier League club Celtic in 2009. He was loaned to First Division club Hamilton Academical for the 2011–12 season. In July 2012, he signed a one-year contract with Raith Rovers. In June 2014, he returned to Alloa before signing for Cowdenbeath the following season, before once again resigning for Alloa in 2016. After a year with Alloa, Spence moved back to Raith for his second spell, spending a further year in Kirkcaldy. Spence signed on for his fourth spell with Alloa in June 2018. He has since played for Arbroath, Stenhousemuir, East Fife (on loan) and Inverkeithing Hillfield Swifts.
