An accomplished player with Tranmere Rovers, who spent some time on-loan at Altrincham, Morgan joined Doncaster Rovers on a free transfer before being released after a brief spell and instead moving to Morecambe in December 2002.
After a spell with Porthmadog, he took over as player-manager of Cefn Druids, replacing Steve O'Shaughnessy in February 2004. Morgan spent just 10 months in the role before stepping down in December 2004 and moving to Rhyl, where he made one appearance before ending his first team playing career at Connah's Quay Nomads.
In 2007, Morgan joined Bangor City as assistant manager to former Tranmere player Neville Powell where they led the side to two consecutive top six finishes and UEFA Cup places.
Morgan was appointed as manager of his home town team Aberystwyth Town in November 2009, succeeding Brian Coyne and was joined by his former Tranmere and Wales under-21 team mate Christian Edwards, who had served as caretaker manager of the club during the vacancy, as his assistant manager.
In his first season, Morgan took Aberystwyth to a fourth placed finish. He left the club in February 2012 by mutual consent after a disappointing season and, in November 2012, was appointed manager of Llandudno, guiding the club to promotion in 2015 and to a debut in Europe 12 months later.