Brown was born in Bathgate and played at the local golf course. He represented Great Britain in the Ryder Cup in 1953, 1955, 1957 and 1959 and had a 4-4-0 win-loss-half record. He won all of his four singles matches but lost his four foursomes matches. He topped the European Order of Merit in 1957. He was the non-playing captain of the British Ryder Cup teams in 1969 and 1971. He won the Scottish PGA Championship seven times between 1956 and 1968.