Kelly was born in Macksville, New South Wales and grew up in Kempsey, New South Wales. He started playing at the age of five for the Smithtown Tigers Junior Rugby League Club. He also played for the Kempsey Dragons and Bowraville Tigers, before becoming a member of the Dunghutti Junior Broncos under-14s side. He attended St Paul's College, Kempsey before moving to Sydney and attending Patrician Brothers' College Blacktown. He was selected in the New South Wales under-15s Combined Catholic High School's rugby league side as five-eighth. In 2008, he played for the Australian Schoolboys where he was vice-captain, before being signed by the Parramatta Eels on a four-year contract. He was chased by the Sydney Roosters and St. George Illawarra Dragons.
In 2008 and 2009, Kelly played for the Parramatta Eels' Toyota Cup team, scoring 11 tries in 23 games, and also played for the New South Wales under-18s.
He played for the Sharks' Toyota Cup team in 2010, scoring three tries in 11 games.
In Round 1 of the 2010 NRL season he made his NRL début for the Sharks against the Melbourne Storm, but played only five matches that year due to injury. He returned in Round 1 of the 2011 season. He scored his first two NRL tries against the Penrith Panthers in Round 3 of the 2011 NRL season. In Round 7, he broke his leg after an attempted tackle playing against the North Queensland Cowboys. Kelly returned for the last two matches of the season. In 2012, Kelly fell out of favour with Sharks coach Shane Flanagan and was sacked mid-season.
In 2012, he signed with the Charlestown-based Central Newcastle Butcher Boys in the Newcastle Rugby League. While signed to Central, Kelly also trained with the Newcastle Knights from early April, as the Knight's coach, Wayne Bennett, offered Kelly help in getting his career and life back on track. He then signed with the Knights to play in the New South Wales Cup competition.
In June 2012, Kelly was suspended before having his contract terminated after pleading guilty in court to smashing a light at Newcastle nightclub Fannys.
In 2013, Kelly joined the Gold Coast Titans to trial for a contract. He made his début for the Titans against the Cronulla Sharks. They lost the game 12-10, however there were good signs for Kelly, producing a try assist. In his next game, he scored a double and another try assist against the Canberra Raiders in the 36-0 demolition. On 22 August 2014, Kelly became one of the current NRL players and former Sharks players to accept reduced bans from the Australian Sports Anti-Doping Authority for his role in the club's 2011 supplements program.
On 18 October 2014, Kelly was released from the Titans alongside Maurice Blair to sign two year contracts with Hull Kingston Rovers, replacing Australian halves Travis Burns and Kris Keating. On 30 September 2015, he was named Hull KR Player of the Year. In 2015, Kelly played in the 2015 Challenge Cup final suffering a loss of 50-0 against Leeds Rhinos, the largest losing margin in the competition's history.
After two seasons at Hull KR he moved to rivals Hull FC On 26 August 2017, Kelly played in the 2017 Challenge Cup final for Hull FC, winning the game 18-14 against Wigan Warriors, Hull FC's second win in a row in the cup.Challenge Cup: (1) 2017
Runners Up: (1) 2015
Kelly is a cousin of South Sydney Rabbitohs player Greg Inglis.