Keene is a product of the Portsmouth youth scheme. After making his way through the ranks he was loaned to Football League Two club Kidderminster Harriers F.C, making his debut in a 2-0 defeat to Bristol Rovers. Keene was the Man of the Match for the visitors. He played five more games for Kidderminster, excelling during his loan period.
He was rewarded upon his return to Fratton Park with his first professional contract, to run until the summer of 2007.
Following his loan he broke into the first team squad, and played in the final two games of the 2004/05 season. He then played on loan in the 2005/06 season at League 1 side Bournemouth and then with League 2 side Boston United. He scored his first league goal on 15 October 2005, as Bournemouth beat Colchester away from home by the single goal.
He was loaned in March 2006 to GAIS for the Swedish 2006 Allsvenskan. James scored the first goal of the season for GAIS in the Allsvenskan in the Gothenburg derby against Örgryte. He finished the season as the club's top scorer with 10 goals in 22 league appearances, and following his success he was at the end of the season transferred to the Swedish champions IF Elfsborg, signing a five-year contract with them.
He has failed to make an impact, being used mostly as a substitute, and has been linked with a return to the lower leagues of his native England.