Born in Battersea, James began playing football as a youth for local side Battersea Church.
Brentford
James appeared in a friendly match for Third Division South club Brentford in August 1928 and impressed manager Harry Curtis. Though not awarded a contract, James became the assistant groundsman at the club's Griffin Park stadium. In August 1929, James was offered a contract and turned professional. Beginning life in the reserve team, he was a part of the side which won the London Combination title in the 1931–32 and 1932–33 seasons. Consistently behind Jimmy Bain in the pecking order, James made his debut for the club on 21 November 1931 in a 2–1 away win for the Bees over Brighton & Hove Albion. He made a further six appearances during the 1931–32 season and another five the following year. With the Bees playing Second Division football for the 1933–34 season, James finally broke into the team, making 35 appearances and scoring his first goal for the club in a 4–1 away win over Oldham Athletic on 14 October 1933. James made 40 appearances and scored one goal during the 1934–35 season, a fantastic campaign in which the Bees won the Division Two title and the London Challenge Cup. James averaged just over 41 appearances a season in the First Division and was part of the team which finished fifth in 1935–36 and which topped the table for nearly half of the 1937–38 season. James' final professional appearance for the Bees came on 19 August 1939, in a 5–1 Football League Jubilee Fund defeat to Chelsea. The outbreak of the Second World Warin September 1939 saw competitive football suspended for the duration of hostilities. James remained with Brentford during the war and captained the side to the 1941–42London War Cup, winning the trophy at the second time of asking. James played on until February 1944, when he retired after suffering a broken wrist in a 5–3 defeat to Charlton Athletic. He made 165 appearances for the Bees during the war. In a Football League 125th anniversary poll, James was ranked by the Bees supporters as the club's third best-ever captain and was one of the first inductees to the Brentford Hall of Fame in 1991.
After the war, James, now in his mid-thirties, signed for Colchester United of the Southern League. He made his debut on 17 November 1945 in a 3–1 away defeat to Hereford United and played his last game for the club on 2 February 1946, an 8–0 defeat at the hands of Bath City. He made a total of 9 appearances for Colchester.