Harris was born in Waterlooville, Hampshire and attended Purbrook Junior School.
Harris started his career with Portsmouth and signed two-year scholarship in July 2010. He progressed through reserve and academy sides and made his senior competitive debut on 20 March 2012 as a substitute for David Norris and nearly scored in a 4–1 victory against Birmingham City in a Championship fixture.
His second appearance was also as a substitute, he came on for Luke Varney in the 46th minute in a 4–3 victory over Doncaster Rovers, a result which relegated Doncaster. Harris got his first competitive start against Derby County, with Portsmouth relegated following the result.
Harris signed a two-year professional contract at Portsmouth in July 2012. He scored his first goal for the club on 25 August 2012, in a 4–2 defeat to Carlisle United. He then scored the opening goal of the game against Crawley, Portsmouth went on to win 3–0.
On 12 September 2013, Harris was loaned to Havant & Waterlooville. A month later, he joined Chelmsford City in the same predicament.
On 4 March 2014, Harris joined Bognor Regis Town on a one-month loan. On 9 May 2014, he was released by Pompey along with 8 other players.
On 10 October 2014, Harris signed with Conference South side Gosport Borough until the end of the season. On 14 November Harris dual signed with Horndean, meaning he can play for Gosport and Horndean as they're in different leagues. He scored 3 goals for Horndean in a 5-2 win over Fareham Town FC in the Wessex League Cup.
In 2016, Harris signed for Moneyfields.As of 6 December 2014
Includes other competitive competitions, including the Football League Trophy.