Cox was born in Darvel, Ayrshire, Scotland. He initially played for Queen's Park, Third Lanark and Dundee during World War II, joined Rangers in 1946 and played in the Scottish Football League when it recommenced play after the war. Cox, a defender, made his league debut for Rangers in a 4–2 win over Motherwell at the start of the 1946–47 season. He made a total of 13 league appearances in his first season, including a 4–1 win over Hamilton Academical in the last match, as Rangers beat Hibernian to clinch the League title. In the following season, 1947–48, Cox was an ever present as Rangers finished second to Hibs in the league, but won the Scottish Cup after a 1–0 replay win over Greenock Morton. Cox also netted his first goal during the season, scoring in a 2–1 win over Clyde at Ibrox. In season 1948–49, Rangers became the first club in Scottish football history to win the Treble and Cox played an important role, playing in 43 of the 44 matches. Rangers retained the League title in season 1949–1950, and Cox was once again an ever-present as Hibernian were edged out by one point. Rangers also retained the Scottish Cup, beating East Fife 3–0 at Hampden. 1950–51 was a disappointment for Rangers as they failed to register a trophy for the first time in five seasons. More disappointment followed as they were once again left trophyless in 1951–52, however Cox continued to be an important member of both the Rangers and Scotland teams. In season 1952–53, Rangers returned to domestic success as they won the League and Cup double with Cox featuring in 37 of the 48 matches; however, he missed out on the Scottish Cup final win over Aberdeen. Cox played in 44 games out of 47 in season 1953–54, however Rangers failed to win a trophy and finished a distant 4th in the League. 1954–55 was his last season at Rangers as he made only 15 first-team appearances. He played his final match for the club in a 2–1 defeat to Aberdeen on 19 February 1955. Cox made a total of 370 appearances for Rangers. After his Rangers career, Cox had a spell with East Fife before emigrating to Canada in 1958. He played in the Canadian National Soccer League for Toronto Ulster United in 1958, Toronto Sparta in 1959 and was player-coach of Stratford Fischers in 1960. He also played for the Ontario All-Stars against West Bromwich Albion in 1959.
International
Cox won 25 caps for Scotland and 13 caps for the Scottish League XI. He made his international debut on 23 May 1948 in a 3–0 loss to France as a late replacement for Billy Campbell whose boots had broken; due to the unexpected change, some records incorrectly attributed this to Charlie Cox, a distant relative who also played at a high standard but never appeared at international level. In 1954 Cox played his last match for Scotland; he captained the team at Hampden in a 4–2 defeat by England in front of 134,544 spectators. He was also related to Jackie Cox.
Death
As of 2014, Cox was living in a nursing home in Stratford, Ontario. He died in August 2015, aged 91 years old, after a short illness.