Shaw was born in Mansfield. He turned professional in February 1930 when he joined Wolverhampton Wanderers. After 183 competitive appearances for Wolves, Shaw moved to their local rivals West Bromwich Albion in December 1936. Albion broke their transfer record to secure his services, paying the £7,500 fee in two installments. He made his Albion debut the same month, against Liverpool at Anfield. During the Second World War he continued to represent Albion, as well as making guest appearances for Nottingham Forest and Blackpool. Shaw scored 14 goals in 251 competitive games for West Bromwich Albion. In 1947 he left the club to join Hereford United, where he played until his retirement in 1949. He later refereed in the Oldbury & District leagues and worked as a scout for West Bromwich Albion. Shaw died in Handsworth, Birmingham in January 1977.