Ferguson started his career in Norwich City in their youth academy before transferring to Dagenham and Redbridge's academy. On 14 August 2013, he joined Conference South club Chelmsford City on a one-month loan deal. He made his debut in senior football for the "Clarets", coming on as a 68th-minute substitute for Tom Derry in a 2–1 defeat at Tonbridge Angels, in what would be his only appearance for the club. On 20 December 2013, he joined St Albans City on a one-month loan. He played four Southern League Premier games for the "Saints". He ended the 2013–14 season at Isthmian League Division One South club Hastings United, though would score an own goal in extra-time to gift Folkestone Invicta a 3–2 victory in the play-off semi-finals at Cheriton Road after he attempted to block a pass only to see the ball loop over his own keeper's head from 30-yards out. After being released by the "Daggers", he signed for Billericay Town of the Isthmian League Premier Division. He signed for league rivals Grays Athletic in February 2015, in hope of more regular football.
Ferguson signed a two-and-a-half-year deal with League One side Burton Albion on 2 December 2015 after impressing manager Jimmy Floyd Hasselbaink on trial. In doing so he went against the advice of Grays manager Mark Bentley, who said that he should see out the season with the "Gravelmen", saying that "sitting in U21 sides is not what they need". Nigel Clough replaced Hasselbaink as "Brewers" boss just two days later, and Ferguson failed to make an appearance at the Pirelli Stadium. He was loaned to Dartford on 24 March 2016. He scored one goal in seven National League South games for the "Darts".
On 26 July 2016, Ferguson signed a one-year contract with Port Vale, becoming manager Bruno Ribeiro's 13th signing of the summer. He made his first and only appearance for the "Valiants" as a first-half substitute in an EFL Trophy match against Derby County Under 23s at Vale Park on 30 August. On 8 October, he joined National League side Southport on a month-long loan. He played seven games for Steve Burr's "Sandgrounders". Ferguson left Vale by mutual consent on 30 January 2017 after coming to an agreement with new boss Michael Brown on the remainder of his contract.
Return to non-league
Ferguson returned to the National League, signing with Bromley in March 2017. However his only appearance for the "Ravens" came in the Kent Senior Cup. He signed on loan for Folkestone Invicta towards the end of the 2016–17 season. He featured in three Isthmian League Premier Division games for the "Seasiders", scoring one goal. He signed for Dulwich Hamlet on 1 July 2017.[ He scored seven goals from 52 appearances in the 2017–18 season, and played in the play-off final victory over Hendon that secured the club promotion out of the Isthmian League. He remained a key player at Champion Hill in the National League South, scoring three goals from 39 games in the 2018–19 campaign.
On 14 June 2019, Ferguson signed for League Two club Crawley Town on a three-year-deal for an undisclosed fee. On 3 August, he made his professional debut, playing the full 90 minutes away to Carlisle United. He scored his first goal for the "Red Devils" seven days later, in a 2–0 victory against Salford City at Broadfield Stadium.
Style of play
Ferguson is able to play as a midfielder or forward and has pace, power and skill.