Spence was born in Rothesay on the Isle of Bute and started his football career on the Scottish mainland with St Mirren, before moving to England in 1897. After a brief spell at Derby County, Spence joined Gainsborough Trinity of the Football League Second Divisionin the summer of 1898. He spent one season with Gainsborough, generally playing at inside-right, when he made 26 league appearances, scoring ten goals. Spence then moved to Reading of the Southern League where he spent two seasons before returning to the Football League with Preston North End in May 1901. He spent the 1901–02 season at Preston, making 19 league appearances scoring seven goals. At the end of the season, Preston finished in third place, nine points behind Middlesbrough in the runners-up position. Spence then returned to Reading for a further season. In the 1903 close season, Spence moved to the Southern League champions, Southampton. At the "Saints", Spence was used very much as a utility player appearing in various positions either at half-back or as a forward, although he was generally played on the left. He made his debut for Southampton playing at left-half in a 3–0 victory at New Brompton on 12 September 1903. Described as "fast, tricky, clever and a glutton for work", Spence made a few appearances in the various forward positions over the next six months, but it was not until March 1904 that he became established in the side when he took over from Samuel Meston at left-half for the remainder of the season. At the end of the season, Spence helped the Saints retain the Southern League championship, before moving on to Hull City. Hull City were founded in June 1904 and were restricted to friendly matches, although they did enter the FA Cup in the preliminary round, where they were eliminated by Stockton after a replay, with Spence scoring twice, thus becoming Hull's "top-scorer" in competitive matches in the 1904–05 season. In 1905, Hull City were admitted to the expanded Football LeagueSecond Division. Spence had the honour of scoring Hull's first goal in the Football League, in a 4–1 victory over Barnsley on 2 September 1905. Hull finished their first league season in fifth place, with Spence having scored twice from 19 appearances, generally as an inside-forward. At the end of the season, Spence returned to Scotland and played out his career with Clyde and Cowdenbeath.