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.
In 2010, Joyce played Finnegan "Fuzz" Greene in Australian television series Rake. His character, teenage son of the series' protagonist "Cleaver Greene" played by Richard Roxburgh, appeared in all 8 episodes of the first season and has since appeared in all subsequent seasons of the show.
In 2014, he joined the cast of Please Like Me as Arnold, a young gay man who has an anxiety disorder.
On 1 September 2016, Joyce independently released his first album, Snow on Higher Ground. This was released on iTunes, Bandcamp, and on a limited vinyl.
In April 2018, Joyce starred in a production of Big River -The Adventures of Huck Finn.
In 2021, Joyce released a single, make a break for the ocean,[8] under the pseudonym alter echo.