Having come through the youth academies at Manchester United and Arsenal,[2] Cregg started his senior career at Arsenal; his first senior appearance was in a 3–1 victory against Everton in the League Cup on 9 November 2004, as an 89th-minute substitute for Arturo Lupoli.[3] In all he made three appearances, all of them being in the League Cup.[4]
Cregg joined Scottish Premier League club Falkirk in January 2006 and made over 100 Scottish Premier League appearances for the club. He was released in the summer of 2009, having made his last appearance for the club in the 2009 Scottish Cup final.[5]
Cregg signed a one-year contract with Bury in August 2011.[11] In May 2012, he was released by the club after being deemed surplus to requirements.[12]
Cregg then played for St Johnstone as a trialist in July 2012 before agreeing a one-year contract with the club.[13]
In August 2014, Cregg signed a contract until the end of the season with League of Ireland side Shamrock Rovers.[14]
After two and a half seasons with Rovers, Cregg signed for Dublin rivals St Patrick's Athletic on 22 November 2016 on a one-year deal.[15][16] On 31 January 2017 Cregg made his Pats debut in a 4–0 Leinster Senior Cup win over Bray Wanderers at the Carlisle Grounds.[17] After half a season with Pats in which he was in and out of the team, Cregg requested to leave and came to a mutual agreement with the club to cancel his contract on 4 July 2017.
Cregg signed for Forfar Athletic on 13 August 2017.[18] He was released from his contract on 31 January 2018.