Hamilton turned professional in 1991, entering the world's top 32 in 1995/1996. Hamilton has reached two ranking tournament finals. In the British Open in 1999, where he lost to Fergal O'Brien, Hamilton opened with two centuries, but O'Brien won five frames on the final black to defeat the Nottingham man. The other was the 2001 China Open. Mark Williams beat him 9–8, despite Hamilton having led 8–5. He made the first of his four World Championship quarter-finals in 2000, losing 3–13 to John Higgins.
He reached the quarter-finals of the World Championship on three later occasions (2002, 2004 and 2007), but without reaching the semi-final stage. In 2002, he lost 6–13 to eventual winner Peter Ebdon. In 2004, he made two consecutive century breaks to come from 0–2 down to level at 2–2 in his quarter-final against eventual champion Ronnie O'Sullivan, but eventually lost the match by 3–13. Hamilton's 438 points scored in this match are a record low for a World Championship Quarter-final. He also has the highest ever points total in a first-round match at the Crucible, 1271 against Chris Small in 1999, though he lost this match 9–10. In 1997 he reached the second round; facing John Parrott at this stage he scored 414 unanswered points in frames 1–5, but still lost the match (this is the second highest number of unanswered points in Crucible history; the record was set by John Higgins against Hamilton in the second round in 2000). Hamilton did not fare well in the 2006 World Championship, losing 1–10 in the opening round to Mark Williams. However, a strong two seasons ensured that he reclaimed a top 16 place.
Hamilton began the 2006/2007 season at the Northern Ireland Trophy, losing 3–5 against Ding Junhui. At the Grand Prix Hamilton lost all five of his group stage matches, and didn't advance to the knockout stage. Hamilton then lost 7–9 against Rod Lawler in the first round of the UK Championship, 3–6 in the wild-card round of the Masters, 4–5 against Tom Ford in the first round of the Malta Cup. Hamilton's best result of the season came at the Welsh Open, where he reached the quarter-finals by defeating both Joe Perry and Dave Harold, before losing his match to Steve Davis in a final-frame decider. Hamilton than lose in the first round of the China Open 4–5 against Mark Selby. Hamilton reached his fourth World Championship quarter-final, pulling off a surprise 10–3 victory over Marco Fu in round 1, and a 13–8 second round win over Ian McCulloch. However, he couldn't advance to the semi-final stage, losing 7–13 to Stephen Maguire. As a result, he did not retain his top sixteen place, falling to number 26 in the rankings for 2007/2008.
Hamilton began the 2007/2008 season at the Shanghai Masters, where he lost 4–5 against Adrian Gunnell in the last qualifying round. Hamilton than was eliminated in the round robin stages of the Grand Prix, as he won only two of his five matches. He reached the second round of the Northern Ireland Trophy, by defeating Michael Judge 5–2 in the first round, but lost 2–5 against Shaun Murphy. He could qualify for the televised stage of the 2007 UK Championship, by defeating Barry Pinches 9–6, but lost against Mark Selby 5–9 in the first round. Hamilton then lost in the first round of the Welsh Open 2–5 against Andrew Higginson, and couldn't qualify for the China Open, after losing 1–5 against Marcus Campbell in the last qualifying round. He ensured his qualification for the World Championship with a 10–2 victory over Scott MacKenzie in the final qualifying round, but lost 3–10 to Stephen Maguire in the first round. This saw him drop from number 26 to 31 in the World Rankings at the start of the 2008/2009 season.
In 2008/2009 Hamilton did not reach the last sixteen in any of the first five ranking events. He lost in the first round 3–5 against Andrew Higginson at the Northern Ireland Trophy, 2–5 against Marco Fu at the Shanghai Masters, and 0–5 against John Higgins at the Grand Prix, while he could not qualify for the Bahrain Championship and the UK Championship, as he lost in the qualifying round 2–5 against Mark Davis and 4–9 against Higginson respectively. However he managed a run to the semi-finals of the 2009 Welsh Open. On the way he beat Peter Ebdon, Michael Judge and Mark Selby. In the semi-final he led Ali Carter 3–0 and it looked as though he may reach his third ranking final but eventually lost 5–6 against the eventual winner. Hamilton qualified for the China Open, by defeating Patrick Wallace 5–1, but lost 4–5 against John Higgins, and he couldn't qualify for the World Championship, as he lost 5–10 to Ricky Walden in the last qualifying round. At the end of the season he lost his place among the worlds top 32, and was ranked number 33 in the next season.
In 2009/2010 season Hamilton couldn't qualify for first two rankings events, as he lost 0–5 against Jamie Cope at the Shanghai Masters, and 0–5 against David Gilbert at the Grand Prix. His only appearance in the last 32 came at the 2009 UK Championship, where he lost 2–9 against Mark King. Hamilton however couldn't qualify for the last three ranking events, as he lost 4–5 against Bjorn Haneveer at the Welsh Open, 4–5 against Tony Drago at the China Open, and 6–10 against Ford at the 2010 World Snooker Championship.
In 2010/2011 season Hamilton failed to qualify for the first three ranking events as he lost 2–5 against Ricky Walden at the Shanghai Masters, 1–3 against James McBain at the World Open and 3–9 against Rod Lawler at the UK Championship. Hamilton also participated in all Players Tour Championship events, with his best performance coming at the Paul Hunter Classic, where he reached the final, but lost 3–4 against Judd Trump. Hamilton finished 18th on the Players Tour Championship Order of Merit and qualified for the Finals, where he lost 0–4 against Mark Williams in the second round. Hamilton qualified for the German Masters, by defeating Kurt Maflin (5–4), Adam Wicheard (5–1) and Stuart Bingham (5–1) in qualifying stages. He reached the second round by defeating Pavel Leyk (5–1) and Neil Robertson (5–4), before losing against Graeme Dott (2–5). Hamilton couldn't reach the final stages of the last three ranking tournaments, as he lost in the qualifying stages against Matthew Stevens 2–4 at the Welsh Open, 1–5 at the China Open and against Barry Hawkins 5–10 at the World Championship.
Hamilton began the 2011/2012 season ranked number 36. Hamilton reached the quarter-finals of the Shanghai Masters by winning five matches, but he lost 2–5 against Mark King. Hamilton, however couldn't qualify for the final stages of the remaining ranking tournaments, as he lost 5–6 against Marco Fu at the UK Championship, 0–5 against Tom Ford at the German Masters, 1–5 against Joe Perry at the World Open, 1–4 against Andy Hicks at the Welsh Open, 1–5 against Perry at the China Open and 9–10 against Ken Doherty at the World Championship. Hamilton also participated in 10 of the 12 Players Tour Championship events, with his best performance coming in event 11, where he reached the semi-finals, losing 3–4 against Martin Gould. Hamilton finished 42nd on the Players Tour Championship Order of Merit, outside of the top 24 who qualified for the Finals.
Hamilton began the 2012/2013 season ranked number 32. He could not qualify for the first four ranking events, as he lost 4–5 against Michael White at the Wuxi Classic, 3–5 against Jimmy Robertson at the Shanghai Masters, 3–6 against Ryan Day at the International Championship and withdrew from the Australian Goldfields Open. He lost 2–6 to Ian Burns in the qualifying stage of the UK Championship, but then defeated Burns 5–2 and Jamie Cope 5–0 to reach the last 32 of the 2013 German Masters. He recorded a 5–4 victory over Judd Trump, and then lost 2–5 to Ali Carter. Hamilton also qualified for the Welsh Open, but lost 2–4 to Stephen Maguire in the last 32. Hamilton played in nine of the ten Players Tour Championship events this season, with his best result coming in the Kay Suzanne Memorial Trophy, where he defeated George Marter, Ryan Causton, Andrew Higginson, Michael Wasley and Mark Selby, before losing 3–4 to John Higgins in the semi-finals. This performance helped him to finish 34th on the PTC Order of Merit, outside of the top 26 who qualified for the Finals. Hamilton's season ended when he lost 4–10 to Dechawat Poomjaeng in the third qualifying round of the World Championship.
Hamilton began the 2013/2014 season ranked number 43, after dropping 11 places in the rankings during the previous season. He qualified for the Wuxi Classic by defeating Jamie O'Neill 5–1. At the venue he defeated Ryan Day, Stuart Bingham and Mark Williams to reach the quarter-final, where he lost 3–5 against Robert Milkins. After this Hamilton couldn't qualify for two of the next three ranking events, as he lost 2–5 against Mark Joyce at the Shanghai Masters, and 3–6 against Paul Davison at the International Championship. He qualified for the Indian Open by defeating Michael Wasley 4–2, but withdraw from his last 64 match against Michael White. Hamilton also lost 4–6 against Sean O'Sullivan in the first round of the UK Championship. He then qualified for the televised stages of the German Masters, the World Open and the China Open with 5–3 wins against Ross Muir, Andrew Norman, and Alex Borg. He reached the last 16 of the German Masters and the Welsh Open, where he lost 3–5 against Ryan Day 2–4 against Ricky Walden respectively; Hamilton lost in the first round of the World Open and the China Open 3–5 against Mark Selby and 4–5 against Neil Robertson. Hamilton played in all European Tour events this season, and reached the fourth round at four of them. This performance helped him to finish 23rd on the European Tour Order of Merit, and qualified for the Finals, where he reached the last 16, but lost 3–4 against Gerard Greene, despite leading 3–0. Hamilton's season ended when he lost 7–10 to Joe Swail in the second qualifying round of the World Championship.
Hamilton qualified for the 2014 Wuxi Classic, the first ranking event of the 2014/2015 season, by beating Andrew Pagett 5–2. He defeated Kurt Maflin 5–1 in the first round, but from 4–2 ahead of Stuart Bingham in round two, he went on to lose 5–4. He failed to qualify for the Shanghai Masters and International Championship, but knocked out Craig Steadman 6–5 in the first round of the UK Championship, despite Hamilton being docked a frame for arriving late. Hamilton said afterwards, "It was rubbish - seriously. I can't play any worse. It was a good attitude but rubbish snooker. I am rubbish now a lot of the time. I am getting old basically. It's no fun but it's better than working". He reiterated these sentiments after he lost 6–4 to Graeme Dott in the second round stating, "I don't practice much anymore. I only play because it is better than working. I will have to work for a long time so I just want to swerve it for as long as possible". Hamilton qualified for the Indian Open and China Open, but was eliminated in the first round of both. He was knocked out in the last 64 of every European Tour to finish 54th on the Order of Merit and 58th in the world rankings.
Hamilton and Kyren Wilson set a record of six consecutive century breaks, two were from Hamilton, in the 2016 China Open qualifiers. Hamilton was beaten 5–3. In the first round of the Welsh Open he was 71–0 down to Stuart Bingham, but produced a break of 72 to eliminate the reigning world champion 4–1. He defeated Allan Taylor 4–2, before losing 4–3 to Ben Woollaston in the third round. He won through to the final qualifying round for the World Championship, but was edged out 10–9 by Robbie Williams. Hamilton finished the year 71st in the world rankings and therefore outside of the top 64 for the first time since 1992. However, thanks to being placed 64th on the European Order of Merit he earned a two-year tour card.
Hamilton reached the quarter-finals of the English Open by beating Jak Jones 4–3, but lost 5–2 to Liang Wenbo. He also got to the quarter-finals of the next Home Nations event, the Northern Ireland Open and he defeated local favourite Mark Allen 5–2 to make his first semi-final since the 2009 Welsh Open. After the match Hamilton said he had been skint and borrowed money from his dad before these two deep runs. In the semi-final he came from 4–2 and 5–3 down against Barry Hawkins to force a deciding frame in which he had a good chance to win the match, but he feathered the cue ball and Hawkins secured it with a 59 break.
Hamilton came through a very tough draw at the German Masters as he beat Mark Williams 5–3, Mark Selby 5–2 and Barry Hawkins 5–4 to advance to the semi-finals whilst claiming he wasn't playing his best. He then defeated Stuart Bingham 6–4 to get to his third ranking event final and first in 15 years in a match that finished at 1am. Hamilton returned to come back from 5–2 down and win seven of the last eight frames to defeat Ali Carter 9–6 in the final. It sealed the first ranking event title of his 26-year career as a professional and, at the age of 45, he also became the oldest winner of a ranking event since Doug Mountjoy in 1989. Hamilton moved from 66th to 38th in the rankings. He beat Bingham 5–1, before losing 5–2 to Ding Junhui at the Players Championship and failed to reach the World Championship as he was defeated 10–9 by Noppon Saengkham in the second qualifying round. From starting the season with no ranking points he finished it 25th in world, 31 places ahead of the next newly qualified player, Yan Bingtao.
He is nicknamed the "Sheriff of Pottingham", and "Swampy". He now lives in Muswell Hill, north London. In 2001 he suffered a broken wrist while attempting to come to the rescue of a friend who was mugged in a nightclub, an injury which kept him out of three tournaments and ultimately cost him his place in the top 16 of the 2001/2002 season.