Born in Wrexham, Hughes began his career at Aston Villa, where he played seven times during the 1996-1997 season as a replacement for the injured Steve Staunton. He suffered with minor injuries over the next few years and made just one professional appearance in the following two years, playing in a 1-0 defeat to Bournemouth on 28 March 1998 while on loan to League One side Carlisle United. Finding his chances at Villa Park limited on his return he joined Shrewsbury Town on a free transfer, making his debut in a 4-1 defeat to Exeter City.
He spent two years as a regular first-team choice and, in February 2001, he signed for Cardiff City for a fee of £450,000, £225,000 of which was given to Aston Villa due to a sell on clause, and went straight into the Bluebirds side but injuries struck again and after failing to regain his place in the side he was released in 2003 and subsequently retired.
He was appointed the manager of Barry Town in 2003. After a short spell in charge he moved into an assistant manager role alongside Colin Addison who took over as manager in February 2004.
However Addison left the club after just six months in charge and Hughes was re-instated as manager for a short time before he resigned in December 2004, along with the majority of the first-team squad, due to ongoing financial problems at the club In 2005, Hughes took a coaching role at Welsh Premier League side Portuguese Talbot Town.
He later made one appearance as a substitute for the side during the 2005-2006 season.
Hughes later joined English League Two club Shrewsbury Town, spending two years as their head of youth development. He joined Championship side Watford as youth team coach in September 2011.