After being spotted playing in the Newcastle Rugby League by Newcastle Knights coach Rick Stone, Roberts was signed by the Newcastle club. From 2009 to 2011, he played for the Knights' NYC team.
2011
In round 6 of the 2011 NRL season, Roberts made his NRL debut for Newcastle against the Cronulla-Sutherland Sharks, playing off the interchange bench in the Knights' 24-20 win at Hunter Stadium. He finished off his debut year in the NRL having played in seven matches. On 16 October 2011, he was 18th man for the Junior Kangaroos against the Junior Kiwis.
2012
In round 12 of the 2012 NRL season, Roberts scored his first NRL career try against the Gold Coast Titans, in the Knights' 24-14 loss at Hunter Stadium. On 4 May 2012, he re-signed with the Newcastle club on a two-year contract. He scored 3 tries and kicked 40 goals from 18 appearances for the year.
2013
Roberts played in all the club's 27 matches, scoring 6 tries and kicking 49 goals.
2014
On 15 and 16 February, Roberts played for Newcastle in the inaugural NRL Auckland Nines tournament. He scored the first ever try of the tournament in the Knights' 15-12 loss to the Cronulla-Sutherland Sharks. On 19 February, he re-signed with Newcastle on a two-year contract. On 4 May, he played at halfback for New South Wales Country against New South Wales City in the 2014 City vs Country Origin match at Apex Oval in Dubbo, kicking 3 goals in the 26-26 draw. In the Knights' last match of the season against the St. George Illawarra Dragons, he was sinned binned for 10 minutes after he got into a punch up with St. George centre Josh Dugan in Newcastle's 40-10 win. He finished the 2014 season having again played in all of the Knights' 24 matches, scoring 9 tries and kicking 20 goals.
2015
On 31 January and 1 February, Roberts played for Newcastle in the 2015 NRL Auckland Nines. On 13 February, he played off the interchange bench for the Indigenous All Stars in the annual All Stars match at Cbus Super Stadium. In round 12 of the 2015 NRL season, he suffered an ankle injury against the New Zealand Warriors, ending his run of 79 consecutive games going back to May 2012. After being heavily criticized about his form in 2014 and 2015, Roberts fell out of favour with Newcastle and signed a two-year contract with the Gold Coast Titans starting in 2016, after being released from the final year of his Knights contract. He finished his last year with the Knights having played in 21 matches, scoring 3 tries and kicking 54 goals as the club finished last on the tablefor the first time since 2005. On 15 December, he was named on the interchange bench for the Indigenous All Stars team to play against the World All Stars on 13 February 2016.
2016
In February, Roberts played for the Gold Coast in the 2016 NRL Auckland Nines. On 13 February, he again played for the Indigenous All Stars against the new World All Stars, playing at halfback in his team's 8-12 loss at Suncorp Stadium. In Round 1 of the 2016 NRL season, he made his club debut for the Titans against his previous club the Knights, playing at five-eighth and kicking 5 goals in the Titans' 30-12 win at Cbus Super Stadium. Roberts was very influential in helping the Gold Coast reach the NRL Finals for the first time since 2010.