Born in Mansfield he came through the Derby County youth-team ranks before turning professional in 1997 before joining Sheffield United in March 1999. He spent eight years with the Blades, and made close to 250 appearances for the club, helping them to the Premier League at the end of the 2005–06 season. A three-year spell at Barnsley followed after which he returned to Sheffield United for a further season although by this time was a rarely used squad player. He joined Port Vale on a short-term deal in September 2011, before signing with Bradford City for the remainder of the season in January 2012. He joined Ilkeston in January 2013, and retired in October of that year.