Barker was born in Sheffield, South Yorkshire. He began his professional career at Barnsley in 1999. He won the club's young player of the year award in his first full season. He appeared in over 100 games for the club. In July 2002, Barker joined Welsh side Cardiff City. While at Cardiff, Barker had loan spells at Stoke City and Colchester United. After 177 appearances for Cardiff City, he joined Queens Park Rangers in 2007, and Plymouth Argyle in 2008. He moved to Southend United in 2010, playing for the club until 2013. In 2015, Barker was named player-manager of Aldershot Town. He later played for Hereford and Weston-super-Mare.