Morris was born in Radcliffe, Lancashire. He started his career as a trainee with Manchester United in 1939, and turned professional in 1941. He guested for clubs including Bolton Wanderers, Charlton Athletic, Wrexham, and Everton during the Second World War, and made his debut for Manchester United on 26 October 1946 in a 3–0 home win against Sunderland in the First Division. He helped the club win the 1948 FA Cup, then, after scoring 35 goals from 93 appearances in all competitions, he was transferred to Derby County in March 1949 for a world record fee of £24,000. After three seasons at Derby, he finished his League career with Leicester City, where he made more than 200 appearances, and then became player-manager of non-league club Corby Town.