Born in Bishop Auckland, Hudson started his career at Middlesbrough where he moved up to the first team squad in 1999, making his debut in a memorable 1-0 win over Liverpool in December 2000. However, he did not make a significant breakthrough into the Middlesbrough side, and made just six appearances in four years with the club. On 13 August 2002 he joined Chesterfield on a three-month loan, making 19 appearances and scoring one goal against Northampton, before returning to Middlesbrough on 17 November. Three days later he was sent out on loan again, this time to Carlisle United where he stayed for four months making 15 appearances and scoring one goal against Darlington.
Chesterfield
On 21 March 2003, two days after he had returned from his loan spell with Carlisle, Hudson was sold to Chesterfield. He scored on his debut as a permanent Spireites player the following day in a 4–1 home win over Wycombe Wanderers. He played in central midfield with the club, making a total of 82 appearances and scoring eight goals in two years. In 2005, he was made club captain, and the club offered him a contract extension, but he rejected it.
Huddersfield Town
snapped up Hudson on a free transfer on 28 June 2005. He made his debut on 8 August in a 2–1 defeat to Nottingham Forest. His first goal for the club was a direct free kick in a 2–1 away win over Bradford City on 10 October. Hudson found it hard to cement a place in the Terriers' central midfield, as he was up against captain Jon Worthington and youngsters Adnan Ahmed and Michael Collins. By the end of the 2005–06 season, Town manager Peter Jackson, started putting him in a holding midfield role, and continued this into the following season. After several poor performances, Jackson put Hudson on the transfer list and declared that he would never select Hudson or teammate Martin McIntosh again. Jackson was dismissed from the managers' job, leading to Hudson's brief recall to the side under Andy Ritchie. In two years with the Terriers Hudson made 69 appearances, scoring six goals.
Rotherham United
Hudson joined Rotherham United on 15 June 2007. He made his debut on 20 October in a 3–1 home win over Morecambe. His first goal came in his third game for the Millers, a 2–1 home win over Grimsby Town on 3 November. He made 33 appearances in the 2007–08 season, scoring nine goals. In the 2008–09 season he was a regular in the side, making 50 appearances and scoring six goals.
Blackpool
On 10 August 2009 Hudson signed for Championship side Blackpool on a non-contract basis with Adam Nowland. The following day he played in the Seasiders 2–1 victory over Crewe Alexandra in the first round of the 2009–10League Cup. Two days later they were both released.
Gainsborough Trinity
Hudson signed for Conference North side Gainsborough Trinity on 26 September, dropping four leagues down from his last club. He became the first new signing for manager Brian Little. He made his debut in the FA Cup second qualifying round tie with Market Drayton Town. He made his league debut the following week, scoring in a 2–2 draw with Fleetwood Town. On 28 October, Hudson was allowed to join Grimsby Town on trial and also turn out for the club's reserves in a 5–3 victory over the Lincoln City second string at Sincil Bank.
Grimsby Town
Hudson signed for Grimsby Town on 26 November 2009, after completing a successful trial period. After appearing on the bench as an unused substitute in every game prior, he eventually made his debut for the club on 6 February 2010 in the 1–0 home defeat against Notts County, albeit is a 75th minute replacement for Tommy Wright. Hudson and Grimsby suffered relegation from the Football League. Following the conclusion of the 2010-2011 season in the Conference National Hudson was released by Grimsby Town.
Worksop Town
On 30 July Hudson joined Conference National side Alfreton Town on trial. On 9 August 2011 he signed a one-year deal with Worksop Town.
On 15 March 2012 Hudson moved to Worksop's Northern Premier League rivals Bradford Park Avenue in order to help with the club's promotion bid. Hudson stated though he had enjoyed his time at Worksop, they were only in mid table and didn't have a chance of winning promotion to the Conference North.
Northern League
A week after signing for Bradford Park Avenue, Hudson signed with West Auckland Town, which is where he remained until the end of the 2011-12 season. In July 2012 he signed for Ashington. In September 2012 he had a brief spell with Sunderland RCA before joining Shildon a month later.
Coaching career
On 30 October 2017 Hudson joined Shildon as a first team coach.