Joyce began his professional career when he portrayed the eponymous character in Cameron Mackintosh's production of Oliver!. He was the longest serving actor to play Oliver in the musical production of Oliver! touring Sydney, Melbourne, and Singapore. In 2006, Joyce joined the cast of the Australian production of Titanic: A New Musical. He also appeared in the 2006 film Superman Returns as a boy with a camera.
In 2009, Joyce played the character Starkey in the Doctor Who spin-off series K9. He portrayed the role of Andrej in the 2014-2015 Australian season of the musical Once.