Holland captained the NSW Under-16 side at the 2005 Qantas National Talent Identification Championships in Parklea, a tournament the NSW team ultimately won. He was a 2007 AIS Football scholarship holder and was an influential player in their successful campaign in the Victorian Premier League.
Newcastle Jets
Holland made an impressive A-League debut with the Newcastle Jets playing two games as a short-term injury replacement player. He scored a goal against Wellington Phoenix in his first game, making him the youngest player to score in the A-League. In October 2007 he signed a full-time 2-year professional contract with the Newcastle Jets, despite interest from his home town club and Newcastle's rivals the Central Coast Mariners. Holland had previously made three appearances for the Mariners on a short-term contract during the 2006 A-League Pre-Season Challenge Cup. Holland was part of the Newcastle Jets team which won the 2008 A-League Grand Final against the Central Coast Mariners. He was involved in a controversy during second-half injury time when he handballed inside the penalty area. Referee Mark Shield failed to spot the handball and did not award a penalty. Holland later stated that he didn't feel the ball hit his arm and that it wasn't an "intentional" act.
On 11 January 2009, Dutch club AZ Alkmaar completed the signing of the highly rated Australian midfielder for $650,000 on a four-and-a-half year contract from the Newcastle Jets. He had earlier successfully trialled at the club.
On 19 January 2011 it was announced that Holland will be playing for Dutch first division club Sparta Rotterdam for the rest of the season.
Austria Wien
On 17 January 2012 it was announced he had signed a 1 and a half year contract with Austrian Bundesliga giants Austria Wien after successfully trialling with the club.
In September 2016, Holland signed a two-year contract with Adelaide United, returning to the A-League. On 12 January 2017, Adelaide United's coach Guillermo Amor confirmed that Holland exited Adelaide United to go to China.
On 18 January 2017, it was confirmed that Holland had joined Chinese Super League club Liaoning Whowin alongside fellow Australian Robbie Kruse on a two-year deal. In May 2017, Holland and Kruse terminated their contracts with Liaoning Whowin due to unpaid wages.
Return to Austria
Holland returned to Austria in June 2017 to play for newly promoted Bundesliga side LASK Linz.
International career
James is an Australian Under-20 and Under-23 national team representative, a striker in this squad playing alongside Marko Jesic, Holland's good friend. He made his full debut for the Socceroos against Singapore in 2008, and was named in the squad to face Ghana on 23 May 2008. He played in the World Cup qualifier against China on 22 June 2008, and was substituted for David Williams. He has since captained the Young Socceroos AFF U19 Championship after defeating Korea Republic 3–1 on penalties. James Holland was selected for the Young Socceroos Squad for the 2009 FIFA U-20 World Cup in Egypt, he was also named captain for the Young Socceroos. He scored a penalty in the first match against the Czech Republic in the 94th minute in the 2–1 loss, he had missed the first penalty but it was re-taken for infringement. He was selected as a member of Australia's 2014 FIFA World Cup squad in Brazil. Holland remained an unused substitute throughout the tournament.