He played in the Premier League for Birmingham City, Charlton Athletic and Hull City as well as featuring in the Football League for Wrexham, Derby County, Burton Albion and Accrington Stanley, in the Conference for Grimsby Town, and for Icelandic club ÍBV Vestmannaeyjar. He finished his career as player/coach of Non-League side Scarborough Athletic.
Born in Liverpool, Merseyside, Hughes initially made his name at Wrexham, guiding them to the FA Cup quarter finals in 1996–97 with the goals he scored on that cup run. It was his performances in the FA Cup for Wrexham that caught the attention of Birmingham City. Hughes scored against Colwyn Bay, Scunthorpe United, West Ham United and Birmingham before the Welsh outfit bowed out to Chesterfield. In March 1997, Trevor Francis paid £1,000,000 to take him to St Andrews.
Hughes made a total of 293 appearances for the Blues, scoring 42 goals, and was an essential part of Steve Bruce's side's play-off winning season in 2002, and their first and second seasons in the Premier League, before his switch to South-East London. Whilst at Birmingham he played in the 2001 Football League Cup Final as a substitute; although he scored his penalty, Birmingham lost the shootout 5–4. Having rejected a new deal with Birmingham, in July 2004 he moved to Charlton Athletic, signing a three-year contract.
Hughes made his debut for Charlton against Bolton Wanderers on 14 August 2004, when he came on as a substitute for Matt Holland who was injured after twelve minutes. He bagged a brace in a 4–1 FA Cup win over Rochdale at The Valley in January 2005 — his first goals for the club — and scored for the Addicks in a victory over Yeovil Town in the fourth round. Hughes made 22 appearances for Charlton during the season, and scored his fourth and final goal of the season in the last game against Crystal Palace.
In 2005–06 he became the man who caused José Mourinho to lose his first match at Stamford Bridge as Chelsea manager. Included in the side for the third round of the League Cup, Hughes scored the winning penalty in the penalty shootout. He made 40 appearances in total for Charlton, and scored five goals.
On 30 December 2006, Hughes scored the last-minute winning goal against Aston Villa, providing new Charlton manager Alan Pardew with his first win for the club. However, he played less often for Charlton during the 2006–07 season, making 27 appearances and only scoring once, and was unable to prevent Charlton from being relegated from the Premier League.
Hughes joined Championship club Hull City on a free transfer from Charlton Athletic on a three-year deal on 29 June 2007, He made his Hull debut in a 3–2 victory over Plymouth Argyle on 11 August 2007, and scored his first league goal for the Tigers in a 5–0 win against Southampton on 15 March 2008. He made 39 appearances that season, including all three playoff matches, as Hull were promoted to the Premier League for the first time in their history. He did not play as often in the next season as Hull made it into the Premier League, making only eight appearances.
Hughes signed for Derby County on a month-long loan on 22 October 2009. Hughes made three appearances before returning to Hull. Hughes agreed to mutually terminate his contract with Hull on 28 January 2010 but left on good terms with the club.
After trials with Championship club Cardiff City, Huddersfield Town, and Walsall, Hughes signed a one-month deal with Football League Two side Burton Albion on 14 December 2010. He made his debut on 1 January 2011 in a 1-1 home draw with Shrewsbury Town in which he was substituted in the 56th minute by Aaron Webster. That was his only appearance for the club, and he left when his contract expired.
After a trial with Conference National team Grimsby Town, in which he played in a behind-closed-doors friendly with Lincoln City, Hughes signed for the club on 31 January 2011 until the end of the season. He made his debut on 1 February in a 2-2 away draw with Southport. He went on to only play three times for The Mariners, and was among a number of players released at the end of the season by the club's new managerial duo Rob Scott and Paul Hurst.
In 2011, Hughes joined Icelandic side ÍBV Vestmannaeyjar. ÍBV also played in the UEFA Europa League that season.
On 27 October 2011, Hughes joined League Two side Accrington Stanley on non-contract terms. Assigned squad number 27, he made his Stanley debut in a 2–1 win over Bristol Rovers on 5 November. On 10 December, Hughes set up Pádraig Amond's opening goal as Stanley beat Wimbledon 2–0. He scored his first goal for the club in a 3–0 victory over Torquay United on 17 December – his first goal in English football since 2008 – and scored the winner against Morecambe on Boxing Day. His contribution to the club's 10 points from a possible 12 in December earned him the League Two Player of the Month award. He made a total of 22 appearances for Accrington, scoring three times, but left the club at the end of the season after contract negotiations broke down.
In March 2013, Hughes joined Scarborough Athletic of the Northern Counties East League Premier Division until the end of the season. He started his first game on 9 March against Pickering Town, and scored his first goal a week later in a 4–2 victory at Parkgate. In April 2014 he was appointed as one of manager Rudy Funk's joint assistant managers. Following Funk's resignation in November 2014, he was appointed joint manager alongside Paul Foot.
In October 2015, alongside his role with Scarborough, Hughes took up the post of head of coaching at the i2i International Soccer Academy, a facility associated with York St John University.
He made one appearance for a Football League under-21 representative team in a friendly against an Italian Serie B under-21 team.
In 2014, Hughes was appointed as head of the UK footgolf academy scheme.