Born in St Helens, Merseyside, Marsh started his football career at Manchester United. In October 2006, Marsh made his Manchester United debut when he played in Manchester United's 2–1 away win against Crewe Alexandra in the League Cup. He started up front with Alan Smith in the match and was given the squad number 41. He was substituted for Michael Barnes at half-time. Marsh was released from the club in June 2007. In July, he joined Scottish Premier League club Inverness Caledonian Thistle on trial. On 5 September 2007, Marsh signed for English Championship side Blackpool after a successful six-week trial. On 7 May 2008, he was released by Blackpool without making a first-team appearance. On 7 July, Marsh had a trial at Bury, scoring in each of the teams pre-season friendlies at Stockport County, Radcliffe Borough and at home to Huddersfield. Marsh was signed on non-contract terms by Conference National side Northwich Victoria in September 2008, making his first appearance in the 90th minute against Torquay United on 7 September 2008. He left Northwich in September 2008, and was signed by Hyde United. On 22 December 2008, he made his first appearance for Leigh Genesis, scoring one goal in their 3–2 away loss in the Lancashire FA Challenge Trophy second round against Radcliffe Borough. He also made 17 league appearances, scoring five goals, and one appearance in the Northern Challenge Cup, scoring one goal, before joining FC United of Manchester on 19 March 2009, also of the Northern Premier League Premier Division. On 9 July 2010, it was announced that Marsh had left the club.
Stalybridge Celtic
After his release from FC United of Manchester he joined Conference North side Stalybridge Celtic. He made his debut for the club on 14 August 2010, scoring in a 2–0 win over Redditch United. On 6 November 2010, he scored 4 goals in one match as part of a 5–0 away win over Workington. On 16 November 2010 he netted another two goals in a 4–0 derby win over Droylsden, Marsh capitalising on Droylsden's poor performance. On 21 February 2011, he scored for Stalybridge in their local derby against his former club Hyde. Marsh finished the 2010–11 season as Stalybridge's top goalscorer with 24 goals in all competitions. Marsh started his second season with Stalybridge well, scoring his first hat-trick of the season against Vauxhall Motors in August, meaning Marsh would finish the first month of the season with ten goals already to his name.
On 10 May 2012, Marsh joined Forest Green Rovers on a free transfer, signing a two-year contract with the Conference National club. He made his debut on 14 August 2012 in an away win against AFC Telford United. After finding his first-team opportunities limited at Forest Green Rovers, he joined Hereford United on a one-month loan deal on 5 October 2012. On 31 January 2013, Marsh and Forest Green came to a mutual agreement to terminate his contract early and he left the club.