After a brief stint playing for local side Liverpool St Helens F.C., his first semi-professional contract was at Sale Sharks. Horton then moved to Bath to play professionally whilst teaching, making 380 appearances for the club between 1973 and 1985. He made his debut against Terenure in 1973 and captained the side in 1976-77 and 1979-80. During his time at Bath, Horton amassed a total of 80 tries and a remarkable 125 drop goals.
He later played for Bristol when Stuart Barnes joined from the West Country rivals in 1985. Horton was known as a mercurial playmaker and he went on to earn 13 caps for England between 1978 and 1984, scoring 12 points. John's international debut came at Twickenham in England’s 6-9 defeat by Wales on February 4, 1978. Horton's career highlight would undoubtedly be his steepling drop goals in England’s first win in Paris in 16 years back in 1980, a match which paved the way for an England Grand Slam. Horton was invited back to make two guest appearances in 1988, against Bedford and Public School Wanderers.