Joe Powell commence à jouer au rugby avec le Marist College dans sa ville natale de Canberra, dont il en est le capitaine[4],[5]. Parallèlement, il représente la sélection scolaire du territoire de la capitale en 2011 et 2012, disputant le championnat national scolaire[6],[7].
Après avoir terminé sa scolarité, il rejoint le club des Tuggeranong Vikings(en), avec qui il joue en senior à partir de 2013 en ACTRU Premier Division (championnat amateur de la région de Canberra)[8]. À la même période, il représente l'équipe des moins de 20 ans de la franchise des Brumbies[9].
Il commence sa carrière professionnelle en 2014 lorsqu'il est retenu avec l'équipe des Canberra Vikings pour disputer la saison inaugurale du NRC[8],[10]. Il joue quatre rencontres lors de sa première saison, dont une titularisation et inscrit un essai[1].
En , alors qu'il joue avec Tuggeranong, tout en suivant un apprentissage du métier de charpentier, il est appelé en cours de saison par la franchise des Brumbies[11]. Ce recrutement fait suite à l'absence sur blessure du titulaire habituel Nic White, que Powell doit compenser pendant trois semaines[11]. Il fait ses débuts en Super Rugby le contre les Melbourne Rebels[12]. Lors de sa pige, il fait un total trois apparitions comme remplaçant[1].
En 2016, il est conservé par les Brumbies en tant que membre de l'effectif élargi[13]. Il devient alors la doublure régulière de l'argentin Tomás Cubelli, et dispute huit rencontres[1]. Grâce à ses performances, il prolonge son contrat pour deux saisons supplémentaires[8].
Lors de la saison 2017 de Super Rugby, il profite de la blessure de Cubelli pour s'imposer comme le demi de mêlée titulaire de l'équipe[14]. Il conserve sa place lors des saisons suivantes, devenant un cadre de la franchise de Canberra[15],[16]. En 2020, il remporte le Super Rugby Australia, en étant titulaire lors de la finale contre les Reds[1],[17].
En , avec le retour du WallabyNic White aux Brumbies, il décide de rejoindre les Melbourne Rebels à partir de la saison 2021[18],[19]. Il joue deux saisons avec les Rebels, disputant 27 matchs[1].
En 2022, il décide de quitter l'Australie, et s'engage avec le club anglais des London Irish en Premiership[20].
En , il est sélectionné pour la première fois avec les Wallabies par le sélectionneur Michael Cheika, afin de participer aux camps d'entrainement nationaux[22]. Cette sélection est alors considérée comme surprenante en raison de son inexpérience au plus haut niveau, avec seulement huit rencontres de Super Rugby à son actif[23],[24]. Derrière des joueurs comme Nick Phipps et Nick Frisby(en), il ne dispute aucun match.
Il rappelé en sélection l'année suivante, à la même période, pour préparer la série de test-matchs à venir[25]. Il obtient sa première cape internationale le à l’occasion d’un test-match contre l'équipe des Fidji à Melbourne[26]. Il connait une seconde sélection deux semaines plus tard contre l'Italie, puis une troisième au mois de novembre contre le Japon[3].
Il est à nouveau sélectionné en 2018, et joue une unique rencontre contre l'Irlande le à Sydney[27],[28].