Glasgow born Harris started his career senior at Clyde. At Queen of the South he made over 100 first team appearances including in the 2008 Scottish Cup Final and scoring in the UEFA Cup. He next moved to England playing for Blackpool & on loan at Rotherham United. He then played for Sheffield United including in FA Cup & Football League Cup semi finals as well as a divisional play off semi final.
Harris began his career with Clyde, but moved to Rangers for a year, before returning to the Bully Wee's youth setup.
Harris signed professional terms for Clyde at the start of the 2004–05 season, and made his senior début on the last day of the campaign, playing the full ninety minutes in a 1–1 draw against Ross County. Harris played more games the following season, including Clyde's 5–2 after extra-time encounter with Rangers, in the Scottish League Cup. Harris won the penalty which gave Clyde the lead.
Harris got an extended run in the team in the latter half of the 2006–07 season, due to the injury to Neil McGregor.
Harris signed for Dumfries club Queen of the South in July 2007, scoring his first senior goal against Dunfermline Athletic in a 1–1 draw in mid-March.
In the 2008 Scottish Cup Final it was a Harris free kick that was headed home by Jim Thomson to make the score 2–2. Rangers ran out 3–2 winners. He scored his first goal in the 2008–09 season with a free kick away to FC Nordsjælland in the UEFA Cup second qualification round. This made him the only Queens player to score in the away leg of a UEFA competition.
Harris made his 100th appearance for Queens on 22 August 2010 in the 3–1 league win away to Cowdenbeath.
Harris said of his time in Dumfries "I've got to say I really enjoyed those four years at Queen of the South. It was a very special time in the club's history. I particularly enjoyed the 2008 Scottish Cup Final, then playing in the UEFA Cup in Denmark and even scoring in Copenhagen was a bonus."
After his contract with Queen of the South expired, Harris had a trial with English Championship side Blackpool. After being involved in Blackpool's pre-season fixtures, Harris signed a two-year deal with the option for a further twelve months. Harris' competitive debut for the Seasiders came in the League Cup defeat to Sheffield Wednesday on 11 August 2011. Unable to claim a regular place in Blackpool's first team however, Harris did not make his league debut for the Seasiders until April 2012.
Harris joined Rotherham United on a one-month loan deal in September 2012, and said he would be open to extending the deal. However, Rotherham were unable to extend the deal as he was called back by parent club Blackpool after playing five games for the Millers.
Blackpool loaned Harris to Nigel Clough's Sheffield United in England's third tier January 2014. Blades defender Tony McMahon travelled in the opposite direction on a similar deal. After making his Blades debut on 26 January 2014, in an FA Cup tie against Fulham, Harris signed a permanent deal for Sheffield United, with McMahon agreeing to remain with Blackpool on a permanent basis with the option of another year. At the time of Harris' arrival United were in 19th place in the league. However they kicked on for a much more successful second half of the season. They made it to the FA Cup semi finals where they lost to a Hull City fightback. In League One they finished seventh.
Harris's contract with United was extended on 16 May 2014. Harris scored his first goal for the Blades on 18 October 2014 against Bradford City in a 2–0 victory at Valley Parade. He played in the first leg of the League Cup semi final against Tottenham Hotspur at White Hart Lane. Spurs won the leg 1-0 and went through 3-2 on aggregate after a 2-2 second leg draw. Harris didn't play in the second leg. A fifth place league finish earned a play off semi final tie against Swindon Town. Harris played in both legs losing out 7-6 on aggregate.
On 18 February 2016, Harris signed for Fleetwood Town, on loan, for the rest of the season.
Harris signed for Bristol Rovers on 2nd Feb 2017 on a short term deal. He made his debut in a 1-1 draw away to Port Vale on 18 February 2017 which he marked with an own goal to give Port Vale the lead. After making only a few more appearances for The Gas, Harris was not offered a contract and would leave the club at the end of the season.As of match played on 28 March 2015
Queen of the South:-2008 Scottish Cup Finalist
Sheffield United:-2013-14 FA Cup semi finalist
2014-15 Football League Cup semi finalist
2014-15 Football League One play offs