A product of the Liverpool Youth Academy, Morgan garnered attention for his goalscoring exploits during the 2010–11 FA Premier Academy League Group C season. Morgan scored 18 goals in 16 games, making him Liverpool's leading goalscorer, including a run of scoring in each of 12 consecutive games towards the end of the season. Robbie Fowler commented that "as a finisher he is probably one of the best I've seen for a long, long time." Morgan's efficiency in front of goal brought him a debut for the Liverpool Reserves on 12 April 2011 against Bolton Wanderers, in which Morgan netted the only goal of the game.
On 1 July 2011, it was announced that Morgan had signed a contract extension at Anfield to keep him at the club until June 2014. In the 2011–12 season, Morgan split his time between the under 18s and the Reserves. The bulk of his appearances came for the under-18s where he again top-scored with 13 goals in 21 games. He appeared 17 times for the Reserves, netting five times- three of which came in nine NextGen Series games.
Morgan was taken on Liverpool's pre-season tour of the USA by new manager Brendan Rodgers in July 2012. On 21 July, Morgan scored his first senior goal for Liverpool in the friendly against Toronto FC, slotting in a goal-bound shot from Raheem Sterling. Morgan appeared in the second game of the tour against Roma, before being handed his first senior start against Tottenham Hotspur on 28 July 2012. On 23 August 2012, he made his senior debut for the club, coming on as a 90th-minute substitute in a UEFA Europa League qualifying match against Hearts, replacing Fabio Borini in a 1–0 win. The following week, he started his first competitive match in the return fixture in which he had seemed to have scored his first official goal for Liverpool but it was ruled out as the ball had already gone out of play. On 19 September, Morgan was one of the clutch of teenagers to travel to Switzerland to play Young Boys in a Europa League group game, but didn't make the 18-man squad. On 8 November, Morgan started the group game loss against Anzhi Makhachkala, playing 61 minutes before being replaced by Daniel Pacheco. On 19 August, Morgan scored once in a 4–2 win against rivals Manchester United at the Salford City Stadium in an under 21's league game.
On 3 January 2013, Morgan joined League Two side Rotherham United on loan to gain first team experience at the New York Stadium, being handed the number 11 shirt. It was confirmed that he would join on a youth loan until 9 February. He made his debut on 5 January 2013 against Aldershot in the FA Cup. His second and last Rotherham appearance came a week later, playing 56 minutes of the 2–0 league defeat to Barnet. He was replaced by Daniel Nardiello.
On 28 November 2013, Morgan signed for Football League Championship side Yeovil Town on loan until January with a view to a permanent deal in the new year. Morgan made his debut, on 30 November 2013, in Yeovil's 3–0 victory at Watford. With the opening of the 2014 January transfer window Morgan's loan deal expired and he signed a two and a half-year permanent contract with Yeovil Town.
After falling out of favour with Yeovil manager Gary Johnson, on 8 August 2014, Morgan signed for Scottish Premiership club St Johnstone on loan until January 2015. On 13 August 2014, Morgan made his St. Johnstone debut as a second-half substitute in a 3–0 league defeat to Celtic. Morgan made only five appearances for St. Johnstone and following a sending off in a development game against Heart of Midlothian in October 2014 he did not play again for the Perth side. His loan spell was cut short by St. Johnstone in December 2014.
Following his return to Yeovil, Morgan continued to be frozen out from the first-team squad by Gary Johnson until his departure on 4 February 2015. His replacement Terry Skiverton allowed Morgan to return to the first-team squad, and on 21 February 2015 he made his first Yeovil appearance for almost a year as a late substitute against Gillingham. Morgan scored a last minute penalty for his first professional goal to earn Yeovil a 2–2 draw.
At the end of the season Morgan was offered a severance deal by Yeovil, and on 4 June 2015, he signed for League Two side Accrington Stanley on a one-year deal.
In January 2016, Morgan signed for National League South side Hemel Hempstead Town.
Morgan joined Northern Premier League Premier Division side Colwyn Bay in March 2016. His registration was cancelled in April 2016 after failing to turn up to a game.
Morgan then moved to Curzon Ashton. On 5 November 2016, he scored a late goal that earned Curzon an FA Cup first round replay against Westfields FC. Morgan then scored twice in the replay sending Curzon through to play in a televised 2nd round tie. Morgan scored a hat trick in Curzon Ashton's FA Cup second round tie against AFC Wimbledon, however, his team still lost, giving up four goals in the last 10 minutes. Morgan's opening goal in the tie was scored from distance in the first minute of the game and was voted as the goal of the round.
On 23 December 2016, Morgan left Curzon Ashton for fellow National League North side FC Halifax Town, signing an 18-month contract.
Morgan has represented England at under-17 and at under-19 level. He has been capped 17 times for the England national under-17 football team, scoring four goals. He played at the 2011 FIFA U-17 World Cup in Mexico in which he scored one goal in a 2–2 draw with Canada in the group stages. He also scored in a penalty shootout in the Round of 16 against Argentina. England won the shootout 4–2 before losing 3–2 to Germany in the quarter-finals.
He has previously been a part of the England national under-19 football team, having been capped five times and scoring one goal.As of match played 29 April 2017.