Born in Brecon to English parents (his father, a soldier, was stationed there at the time), Barnes initially played as an inside-forward for Southampton in wartime games, making 32 appearances between 1941 and 1943, scoring 14 goals, before he was spotted and signed by Arsenal. He played in virtually every position on the pitch for Arsenal in wartime matches (including a match as goalkeeper), but suffered a serious knee injury incurred in 1944. Despite a poor prognosis at the time, he recovered, and forced himself back in the Arsenal side after insisting on playing a reserves match against Cambridge University. He made his League debut for the Gunners against Preston North End on 9 November 1946.
Barnes became noted for his assured performances at left-back, with his tidy distribution and effortless ability to cut out crosses. He soon found a regular place in the Arsenal side, and was part of their First Division Championship-winning side of 1947-48. By then he had also become a regular for Wales, winning his first cap against England on 18 October 1947, where he was given the unenviable task of having to mark Stanley Matthews; England won 3-0 and the young Barnes was given a harsh footballing lesson by Matthews. Unbowed, Barnes went on to win 22 caps, and became captain of his country.
Barnes switched to right back following an injury to skipper Laurie Scott, and won an FA Cup winners' medal in 1949-50 after Arsenal beat Liverpool. Two years later, Arsenal got to the Cup final again, this time against Newcastle United, but Barnes twisted his knee badly trying to tackle George Robledo and had to come off the pitch after 35 minutes; with no substitutes permitted, Arsenal were down to ten men, and went on to lose 1-0.
As a result of his Cup final injury, Barnes was out for the entire 1952-53 season (in which Arsenal won the League). Although he was back in the side for the next three seasons, his appearances were now less regular and he only played eight times in 1955-56, with Len Wills and Joe Wade competing for the same place. With age as well as past injury now counting against him, he retired from playing in the summer of 1956. In all, he played 294 matches and scored 12 goals (he was often the club's designated penalty taker).
During the last two years of his playing career, Barnes was also manager of the Welsh national team, being in the role between May 1954 and October 1956. After that, he entered the world of broadcasting, joining the BBC. He presented coverage of FA Cup finals and, with Kenneth Wolstenholme, was one of the commentators for the very first edition of Match of the Day in 1964. He also assisted Wolstenholme in the live commentary to the 1966 World Cup final of England versus Germany to which he provided sporadic expert opinion.
Walley Barnes wrote his autobiography, titled Captain of Wales. He continued to serve the BBC in various capacities, until his death, at the age of 55, in 1975.