Born in Lewisham, Greater London, Wilson came through the youth setup of Crystal Palace where he had been since the age of nine.[1] However, despite being reserve team captain he found first team opportunities limited at Selhurst Park and was sent on a month-long loan to Isthmian League First Division side AFC Wimbledon.[2] Wilson signed for Conference National club Rushden & Diamonds in July 2006, where he found himself a first team regular under manager Paul Hart. However, Hart was sacked later on in the season, and Wilson fell out of favour at the club when Graham Westley was appointed.[3] In March 2007, he was sent out on loan to fellow Conference side Kidderminster Harriers for the rest of the season. In the summer of 2007 Wilson joined Crawley Town on a free transfer.[4] In May 2012, Wilson was released by the club after being deemed surplus to requirements.[5]
On 28 June 2012, Wilson signed for Gateshead on a one-year deal.[6] He made his debut as a substitute on 14 August 2012 in a 4–1 win over Mansfield Town.[7] He made his first start for Gateshead on 22 September 2012 in a 2–1 defeat at Woking.[8]
On 30 January 2013, Wilson joined Salisbury City on loan for the rest of the season.[9] He made his debut for Salisbury on 9 February in a 2–1 defeat against Dorchester Town.[10]
On 25 April 2013, Wilson was one of seven players released by Gateshead.[11]
He returned to Salisbury City in the pre-season period, and made an appearance for them against Bournemouth. Two days later, he signed for Salisbury ahead of the upcoming season. As a result of Salisbury captain Brian Dutton developing injury problems, Wilson took on the role of captain and started the season well, playing as a central defender instead of his usual full-back position.