Battles was born in Springburn, Glasgow, he moved to Midlothian when still a boy and played his early football with Broxburn and Bathgate, before joining Hearts in 1894, winning the Scottish Football League title the following year and then moving on to Celtic. He made his Celtic debut in the 2–1 away league win over Dundee on 10 August 1895 and won a League championship badge plus the Glasgow Cup in his maiden campaign.
Late in the 1895–96 season, after Celtic had won the championship, he left on loan for English club Liverpool, where he played in two league fixtures and three 'test' matches (effectively promotion/relegation playoffs) for them.[5] Back at Celtic, he was suspended by the club in November 1896 and did not feature again during 1896–97, after he – plus Peter Meechan and John Divers – refused to take the field for a game due to being insulted by the presence of a journalist who had been highly critical of the team in their previous match (a loss to Rangers in the Glasgow Cup final).[6][7]
Battles joined Dundee in April 1897 and would make 19 total appearances with 2 goals during the 1897–98 season,[8] then played another League match for Liverpool in March 1898. He rejoined Celtic the following October, shortly after John Divers also returned; despite the pair's past indiscretion, the team's results had noticeably worsened in their absence.[7] He remained in Glasgow for the next six years, with no further League titles but four consecutive appearances in Scottish Cup Finals, winning the first two in 1899 and 1900, and losing the others in 1901 (to former employers Hearts) and 1902.[9]
After leaving Celtic he subsequently moved to Kilmarnock[10] before his death from pneumonia on 9 February 1905, at the age of 30, two weeks after falling ill following a match on 21 January. A reported 40,000 people lined the route to Dalbeth cemetery in Glasgow's East End on the day of Battles' funeral. The monies taken from the stand at the 1905 Scotland v Ireland match at Celtic Park were donated by host club Celtic to the grieving Battles family in tribute to their former player.[11]
Battles died before the birth of his son, Barney Battles Jr., who was named in his memory and would also go on to be a Scottish international, playing as a forward.[12]