Hay was born in Tarbolton, Ayrshire and signed for Celtic for £50 from Ayr in March 1903. Described as a strong tackler, Hay captained Celtic between 1906 and 1911 and made a total of 322 appearances for the club, scoring 23 goals. He was part of the Celtic side which won six consecutive league titles between season 1904-05 and season 1909-10 under the management of Willie Maley.
He left Celtic in 1911 after the club failed to meet his improved contract demands and joined English club Newcastle United. He returned to Scotland in 1915 with Ayr United where he remained for three years.