Milkins turned professional in 1995, but dropped off the Main Tour when it was reduced in size after the 1996/1997 season, but returned a year later via the UK Tour. After four seasons of solid progress with occasional last-16 runs, he reached the last 16 of the World Snooker Championship in 2002, and the first round in each of the next three years.
He made history in qualifying for the 2006 World Snooker Championship by making a 147 break in his match against Mark Selby. He became only the sixth player to achieve a maximum in the tournament, and the first to do so in qualifying (as a result, he earned £5,000; in the main tournament it would have been worth £147,000). He ultimately lost to Selby 4–10, becoming only the second player to lose a World Championship match despite a 147, the other being Ronnie O'Sullivan against Marco Fu in 2003. Milkins also made a maximum break against Xiao Guodong in the fourth qualifying round of the 2012 tournament, and this time he won the match 10–4. He has also been on the wrong end of a 147 in the tournament – Mark Williams completed a 10–1 victory in the first round of the 2005 tournament with a final-frame maximum.
At the 2006 Grand Prix he and Ronnie O'Sullivan were the only players to win all 5 group matches, however Milkins lost 5–0 to eventual finalist Jamie Cope in the last 16. The 2007/2008 season was a poor one for Milkins, and he has slipped down the rankings to number 51.
Milkins had a strong run at the 2008 Bahrain Championship. After being elevated into the top 48 seeds due to a clash with previously-arranged Premier League Snooker matches, he won two qualifiers before reaching the quarter-finals at the venue, defeating Michael Holt 5–4 in the last 16 having trailed 0–3.
In 2009, Milkins joined player management company on Q Promotions.
Milkins' walk on music for the main stages of events is I Am a Cider Drinker by The Wurzels, and after his defeat in the 2014 Ruhr Open Final, performed a verse of the song in his post-match interview to the crowd.
Milkins reached the second ranking event semi-final of his career in the 2012 World Open. He qualified for the tournament with 5–1 and 5–0 wins over Sam Craigie and Ryan Day respectively. He was required to play in a wildcard round once at the event in Haikou, China, where he beat amateur Thanawat Thirapongpaiboon 5–3 to set up a first round encounter against Stephen Maguire which Milkins won by another 5–3 scoreline. He defeated Jin Long 5–2, before dispatching reigning world champion John Higgins 5–3 in the quarter-finals. However, Milkins lost his last 4 encounter with Stephen Lee 2–6 and admitted after the match his performance levels had dropped from his previous displays in the tournament. Milkins also reached the second round of the Shanghai Masters and the first round of the UK Championship during the 2011/2012 season and made a 147 break in the qualifying stage of the World Championship. He finished 2011/12 ranked world number 36.
Milkins began the 2012/2013 season by qualifying for the Wuxi Classic by beating Liu Chuang and Ryan Day. Once at the venue in China he came through the wildcard round and then defeated Andrew Higginson 5–3, world number two Judd Trump 5–3 (after being 1–3 down) to reach the quarter-finals where he was on the wrong side of a 5–3 scoreline against Ricky Walden. After this Milkins lost in the qualifying draw of the Australian Goldfields Open and in the first round of four consecutive ranking events. He bucked the trend at the Welsh Open by scoring 4–1 and 4–2 wins over Mark Williams and Sam Baird, but lost 1–5 to Ding Junhui in the quarter-finals. Milkins followed this up by reaching the second round of both the World Open and the China Open, losing to Mark Allen and Stuart Bingham respectively.
Milkins finished 41st on the Players Tour Championship Order of Merit, outside of the top 26 who secured berths into the Finals. However, he took part in all three of the new Asian PTC's and performed well enough to finish 5th on the Order of Merit, which was high enough to qualify for the Finals. There, Milkins lost 2–4 to Anthony McGill in the first round. Milkins qualified for the World Championship for the first time in eight years by defeating six-time runner-up Jimmy White 10–5 in the final qualifying round. Milkins was drawn against world number two and 2010 champion Neil Robertson in the first round, and defeated him 10–8 having trailed 2–5 and described the win as the best of his career afterwards. He found himself 3–9 down to Ricky Walden in the second round, but stormed back into the match to only trail 10–11 before falling short of completing a remarkable comeback as Walden secured the two frames he required to seal a 13–11 win. His successful season saw him rise 18 places in the rankings to world number 18, the highest he has ended a season to date.
He continued his form into the 2013 Wuxi Classic, the first ranking event of the 2013/2014 season. Milkins beat John Astley 5–0, Jimmy White 5–3, Scott Donaldson 5–1 and Anthony Hamilton 5–3. In Milkins' third ranking event semi-final of his career he faced new world number one Neil Robertson and lost all four frames in the first mini session, going on to be beaten 2–6. His consistent play carried into the next ranking event, the Australian Goldfields Open by seeing off Ben Woollaston 5–3, Rory McLeod 5–2 and Tom Ford 5–3 to reach another semi-final. Milkins was 1–4 down against Marco Fu, but pulled it back to 4–4 before losing the next two frames to fall short of making his first ranking final. Milkins advanced to the fourth round of the 2013 UK Championship, but was thrashed 6–0 by Ronnie O'Sullivan. Nevertheless, he was ranked inside the top 16 after the event to qualify for the Masters for the first time in his career. He faced O'Sullivan in a one sided match once again with Milkins losing 6–1.
Milkins' season finished in disappointment as he lost in qualifying for the German Masters and China Open, the first round of the Welsh Open and second round of the World Open. His match against Michael Wasley in the final round of World Championship qualifying went to a re-spotted black in the deciding frame which Wasley potted to beat Milkins 10–9. He dropped out of the top 16 by the end of the season to finish it as the world number 20.
Milkins began the season well once again by beating Liang Wenbo 5–3 and John Higgins 5–2 to play Neil Robertson in the quarter-finals of the Australian Goldfields Open and was defeated 5–2. He eliminated Barry Pinches 6–2, Shaun Murphy 6–1 and Xiao Guodong 6–4 to play in the quarter-finals of the International Championship. A high quality match with Marco Fu followed which Milkins edged 6–5. He said ahead of his match with Ricky Walden that he had to forget it was a semi-final and focus on his game in an attempt to reach his first ranking event final. However, it would be a fifth exit at the last four stage as Milkins was thrashed 9–2. In November, he reached the final of the minor-ranking Ruhr Open, but lost 4–0 against Murphy.
Milkins did not drop a frame in seeing off Michael Leslie and Marcus Campbell at the UK Championship, but was then whitewashed 6–0 by Graeme Dott in the last 32. In the first round of the Masters he was beaten 6–4 by Robertson having been 4–3 ahead. Milkins won through to the quarter-finals of the Indian Open and lost 4–1 to Mark Williams. After he overcame Michael White 5–1 at the China Open, Milkins knew that he had to reach the final to enter the top 16 in the world rankings and avoid playing three qualifying matches for the World Championship. In his fourth ranking event quarter-final of the season, Milkins led Mark Selby on four occasions but each time he levelled and Selby won the deciding frame 71–0. Milkins did win three matches to qualify for the World Championship and lost 10–5 to John Higgins in the opening round. Milkins finished the season inside the top 16 for the first time in his career as he was 16th.
Milkins lost 5–3 in the second round of the Australian Goldfields Open to Joe Perry and 5–0 in the first round of the Shanghai Masters to Judd Trump. He reached the semi-finals of the Asian Tour's Haining Open, but was defeated 4–1 by Ricky Walden. Milkins was knocked out in the second round of the UK Championship 6–2 by David Grace. His second last 16 appearance in a ranking event this season came at the PTC Finals courtesy of eliminating Tian Pengfei 4–1. He had chances in the deciding frame against Barry Hawkins to make the quarter-finals, but failed to take them to lose 4–3. Milkins ensured his place in the World Championship draw by beating Kurt Maflin 10–7. He fell 7–2 behind Mark Selby after the first session, before winning four frames in a row upon the resumption of play to trail by one. However, Selby then took the three frames he needed to overcome Milkins 10–6.
Milkins lost in the third round of the Indian Open 4–2 to amateur David Lilley. He did not win another match at the venue stage of a ranking event until November when he beat Hamza Akbar 6–1 at the UK Championship. Milkins followed that up with a 6–5 victory over Hammad Miah, before playing in his opinion the worst match of his professional career as he was defeated 6–1 by Mark Selby. His first ranking event quarter-final in two years came at the Scottish Open by beating Anthony Hamiltom 4–3, but he lost 5–3 to Judd Trump. At the next Home Nations event, the Welsh Open he went one better by overcoming Kurt Maflin 5–2 to play in his sixth ranking event semi-final. His search for a maiden final will go on though, as Stuart Bingham whitewashed Milkins 6–0.
Milkins has spoken openly about problems with debt, lack of motivation and over-dependence on alcohol consumption. He was coached by 1979 World Champion Terry Griffiths up until the end of the 2014/2015 season. He has two children.