Born in Cambridge, England, Campbell joined Reading as a first-year scholar in June 2002 as part of a group that also contained future Mansfield Town and Rotherham United player Johnny Mullins. He signed his first professional contract on 15 April 2003 at half time during Reading's home game against Preston North End and two weeks later made his first, and ultimately last, appearance for Reading as a second-half substitute against Watford. In September 2004 he damaged his cruciate ligament which kept him out for eight months though he recovered sufficiently to be given a new one-year contract in June 2005. Campbell joined Tamworthin September 2005, but after making just three appearances was forced to return to Reading early after suffering a dead leg. Less than six months after signing a new deal, Campbell had his contract at Reading cancelled in November 2005. Following his release he had a trial at Colchester United, then managed by former Reading midfielder Phil Parkinson, though no move materialised. Campbell then moved into non-league football and joined Isthmian League side Staines Town during the 2005–06 season. He continued to trial at Football League teams, spending ten weeks at various clubs before returning to Staines in March 2006. In September 2006 he moved to fellow Isthmian League club Fleet Town, remaining there until February 2007 when he returned to Staines. His return to Wheatsheaf Park was short-lived though and he joined Farnborough Town for the 2007–08 pre-season. He was again on the move quickly and rejoined another of his former clubs Fleet in time for the regular season. By the start of the 2011–12 season Campbell has amassed 141 starts for Fleet, scoring 29 times. In March 2010, whilst still with Fleet, he became dual-registered for Camberley Town and joined them for their promotion push from the Combined Counties League.
International career
Born in England to Scottish parents, Campbell is eligible to play for both countries at international level. He initially represented England and was called up to the under-17s in July 2002. He switched allegiance to Scotland the following year, scoring twice in two games for the under-17s against Malta in January 2003.