Barnes began his career at Thames Ironworks as a 16-year-old. He made at least five appearances for the Ironworks during the first half of the club's first season of existence in 1895–96, before moving to South West Ham of the South Essex League. Later that season, Barnes returned to the Thames Ironworks team as a guest and played in the final of the West Ham Charity Cup. The match required two replays and Barnes features in all three games, with the Irons eventually running out as winners. He joined fellow South Essex League club Leyton as a professional in 1898.[5]
Sheffield United
Sheffield United made it all the way through to the 1902 FA Cup Final, drawing 1–1 with Southampton in the match at the Crystal Palace. For the replay, Walter Bennett was replaced with Barnes due to an injured ankle. After Sheffield went a goal up thanks to George Hedley, Albert Brown equalized for Southampton. Shortly afterwards Alf Common passed through to Barnes who went on to score the winning goal of the game.[6][7]
West Ham United
Barnes returned to the Irons, by then reformed as West Ham United, in 1902. He spent two seasons with the club, playing in the Southern League.[5]
Queens Park Rangers
Barnes made his debut on 2 September 1907.[8] During his time at QPR he appeared in the teams in both the 1908 and 1912 FA Charity Shield matches, after winning two Southern League titles.[4] 1908 was the first time the match was held. He also represented the league in a match against the Scottish Football League.[4]
During the 1908–09 season for Queens Park Rangers, Barnes was the team's top scorer having scored ten goals in both league and cup competitions. Although the team finished in fifteenth place in the Southern League, they finished in second place in the Western Football League.[9]
Barnes was named in a list of the top 100 Queens Park Rangers players of all time, constructed by the club's historian in 2007.[4][8]