Morgan joined Nottingham Forest aged fourteen from Northern Irish club Ards.[2] He was scouted playing in the prestigious Milk Cup Youth Tournament. He played with the Forest youth team for four years, before making a 28-day loan move to Lincoln City on 14 September 2012.[3] He made his debut on 15 September 2012 in a 3–2 victory over Hyde, where he entered the game as an 85th-minute substitute.[4] Morgan joined Scottish Premier League club Dundee on 31 January 2013.[5] He made one appearance, coming on as a substitute for Nicky Riley in a 5–0 defeat by Celtic.[6] Morgan later joined Conference Premier club Tamworth on 25 October 2013.[7]
After his release from Nottingham Forest, Morgan signed with Northern Premier League club Ilkeston on 13 August 2014.[8] On 2 March 2017, Morgan joined AFC Fylde for an undisclosed five-figure sum.
On 9 September 2017, Morgan signed for Harrogate Town. It was then announced after only three appearances for Harrogate that he would sign for Southport on 22 September 2017.