Wilson began his career at Bristol Rovers, signing a one-year deal at the age of 17 in May 2014; he had spent ten years at the club's academy after signing from Bradley Stoke United at the age of seven. He made the bench at the Memorial Stadium during the 2014–15Conference Premier promotion winning season, but did not make it onto the pitch for the "Pirates". Manager Darrell Clarke reportedly had planned to give him his debut in one match before realising he had already made his three allotted substitutions.
Wolverhampton Wanderers
Wilson initially joined Wolverhampton Wanderers in a loan deal in November 2014, before a permanent transfer for an undisclosed fee was finalised once the January transfer window opened. He played three EFL Trophy matches for the under-23 team in the 2016–17 season, and scored in the 4–0 win over Accrington Stanley at the Crown Ground on 8 November. He signed a new 18-month contract in December 2016. He made his first-team debut for Wolves in the FA Cup on 18 February 2017, coming on as a 76th-minute substitute for Andreas Weimann in a 2–0 defeat to Chelsea at Molineux. Manager Paul Lambert said that he had put Wilson on the bench because of his pace, though he remained behind fellow youngsters Bright Enobakhare, Connor Ronan and Morgan Gibbs-White in the first-team pecking order. Wilson made his EFL Championship debut on 14 April, coming on as a 76th-minute substitute for Jón Daði Böðvarsson in a 2–0 home defeat to Brighton & Hove Albion. He scored his first senior goal on 23 August 2017, in a 2–0 victory over Premier League clubSouthampton at St Mary's in the Second Round of the EFL Cup. He signed a new three-year contract two months later. On 11 January 2018, he joined EFL League Two side Port Vale on loan until the end of the 2017–18 season. The "Valiants" had previously attempted to sign Wilson on loan the previous summer. Manager Neil Aspin said there had been competition from others clubs to sign the youngster. On 17 March, Wilson scored his first goal in the English Football League in a 2–2 draw with Stevenage at Vale Park. On 31 August 2018, Wilson joined Segunda División B club Jumilla on loan, along with eight Wolves teammates. He scored six goals in 16 league games for the club and was praised by manager Leonel Pontes. Wilson said that "over here I've been playing game after game, and I'm pleased that I'm getting more minutes into my legs, getting me fitter, stronger, so it's been a really good experience." On 31 January 2019, he returned to England and joined League Two side Exeter City on loan until the end of the 2018–19 season, replacing departing loanee striker Tristan Abrahams. He made three starts and seven substitute appearances for Matt Taylor's "Grecians", failing to score a goal. He did however enjoy the passing style of play and close proximity to his home in Bristol.
Burgos
On 22 July 2019, Wilson returned to Spain to sign a permanent deal with Segunda División B side Burgos. He scored one goal in seven starts and 12 substitute appearances in the first half of the 2019–20 season.
Macclesfield Town
Wilson returned to England to sign for League Two side Macclesfield Town on 7 February 2020. He made five appearances for the "Silkmen", before the 2019–20 season was curtailed due to the COVID-19 pandemic in England; he was not retained by Mark Kennedy and departed Moss Rosein the summer.
Personal life
Wilson was born in England and is of Jamaican descent.