Kelly played youth football for WFTA FC in Finglas reaching the SFAI finals at under 13 and 15 levels and scoring in a Play-off to win the under 16 Premier League in the DDSL. He played for Tolka Rovers in the Leinster Senior League before joining Crumlin United for the 2009–10 season. It was a successful season in which his team won the Intermediate Cup, the Charlie Cahill and the Metropolitan, as well as the Leinster LeaguePremier Division. Despite missing 14 weeks with a knee injury, Kelly finished top scorer with 35 goals. Whilst playing as an amateur he worked as a builder for Dublin City Council.
Oldham Athletic
On 30 July 2010 he signed on a 6-month contract for the English side Oldham Athletic after impressing manager Paul Dickov in a trial period. He scored his first and only Football League goal on 30 October 2010 in 4–2 victory over Plymouth Argyle. He was released on 13 January 2011 after his short-term contract was completed having made fifteen appearances.
Shamrock Rovers
On 31 January 2011 Kelly signed for defending League of Ireland Champions Shamrock Rovers. He made his League of Ireland debut as a substitute for the Hoops in the opening night win over Dundalk on 4 March 2011. His first goal for the club came on his full debut on 14 March as the club beat Lisburn Distillery 3–0 in the first leg quarter-final match of the Setanta Sports Cup. In October 2011 Kelly scored a late goal against UCD to clinch the 2011 league title for Shamrock Rovers. In January 2012 he signed a new one-year contract with the club. Kelly was released by mutual agreement in February 2012. He had scored 4 times in 4 competitions in a total of 21 appearances.
St. Patricks Athletic
Kelly signed for League of Ireland club St Patrick's Athletic for the 2012 season. He scored his first goal for the club on his debut against Bray Wanderers on the opening day of the season in a 1–0 win at Richmond Park. Kelly followed this up with an assist for Stephen O'Flynn away to Dundalk at Oriel Park. The following Friday Kelly scored again at home against Monaghan United, but he was sent-off before half time.
Shelbourne
In December 2012 he signed for Shelbourne and appeared 31 times for the club, scoring 13 goals.
Shamrock Rovers
Kelly re-joined Rovers in February 2014. He was released at the end of the season.
Bohemians
Kelly joined Bohs ahead of the 2015 season meaning that he lined out for the 4 main Dublin League of Ireland clubs in successive years. His stint was short lived however, as he left the Gypsies in July 2015 despite having netted 5 times in 16 appearances.
Longford Town
Following his release from Bohs, Kelly immediately signed for midland's club Longford Town.
Bray Wanderers
After only half a season at Longford, Kelly joined Bray Wanderers in December 2015.
International career
Kelly represented the Republic of Ireland in the Amateur European Championships, where he scored a hat trick to help the Irish qualify for the finals. In his next match for the team in April 2009 he then scored 4 goals as the Irish team beat Sardinian team Calinganis 5–1. In the UEFA Regions Finals in Croatia in 2009 he appeared in all three matches, against Spain, Bosnia and Belgium, where he scored a last minute goal. In May 2010 he played against the Republic of Ireland national football team.