Kelly began his career at hometown club Derry City before moving to English Football League side Carlisle United, following financial difficulties at Derry. He spent two seasons with the club, which included an appearance in the 2003 Football League Trophy Final, after which he was released and returned to Northern Ireland with Portadown. He captained the side and eventually left after his contract expired in 2006, when he rejoined Derry for a second spell. He featured for the side in the UEFA Cup and UEFA Champions League and attracted the attention of several Scottish Premier League clubs, before eventually joining York City in the Conference Premier in 2007. After leaving York in 2009 he rejoined Portadown, who he left in 2011 due to work commitments. Kelly then resumed his career in English non-League football, playing for Garforth Town and Scarborough Athletic.