A youth player at Hull City, Gordon became the second youngest player to ever play for them when he came on as a substitute against Coventry City in the Football League Cup. But he struggled to ever establish himself at Hull and was allowed to leave and join Lincoln City for £30,000 in November 1997 where he formed a very effective strike partnership with Lee Thorpe. His scoring feats at Lincoln lead Cardiff City to pay £550,000 for him in December 2000, with the amount due to rise depending on appearances but he never reached the required amount. He made his debut for the Bluebirds on New Year's Day and found the net with a header during a 6–1 victory over Exeter City, but the rest of his season was spent on the treatment table with persistent back problems. The same injury ruled him out of a large part of the following year, although one of the matches he did manage to play in was a Football League Trophy match against Rushden & Diamonds which ended in a 7–1 victory for Cardiff with Gordon finding the net five times. He spent a short timeon loan at Oxford United to gain fitness. At Oxford he scored the winning goal on his debut against York City before returning to Ninian Park where he finally broke into the first team but at the end of the year he was released. He was signed by Notts County where he managed to regain some of the form he showed at Lincoln. After a stuttering second year he left to join Crawley Town on a free transfer but suffered a serious injury during the season which has seen him out of action for over a year. He signed for Histon at the start of the 2007–08 season but did not make an appearance for them due to the injury. He then went on to play for Heckington, amateur side. In October 2012, he was appointed to act as coach to Kris Jones who had taken over the running of Sleaford Town's reserve team in the Lincolnshire Football League. He also made occasional appearances for the team, debuting in the 2–0 home defeat to Grimsby Borough Reserves on 13 October 2012 and making 3+4 league appearances in which he netted three times including a brace against Louth Town Reserves. In June 2013, with Kris Jones having been promoted to first team manager, Gordon stepped up to become first team coach at Sleaford Town with his one-time Lincoln City teammate Terry Fleming acting as assistant manager. He later played for several non-league clubs before retiring.