Champion du Portugal espoirs et vainqueur du Tour du Portugal du Futur en 2004, João Cabreira participe en fin de saison aux championnats du monde sur route avec l'équipe du Portugal des moins de 23 ans. Il se classe 33e du contre-la-montre de cette catégorie[1], et abandonne lors de la course en ligne[2].
Il passe professionnel en 2005 dans l'équipe Carvalhelhos-Boavista. L'année suivante, il rejoint la formation Maia-Milaneza. Il remporte le Tour de l'Algarve grâce à sa victoire dans l'ultime étape. En 2008, il est sacré Champion du Portugal sur route. Accusé d'avoir voulu se soustraire à un contrôle antidopage hors compétition en juillet, il est suspendu dix mois par la fédération portugaise, puis est blanchi en décembre. En , la fédération portugaise le suspend deux ans pour avoir falsifié un contrôle antidopage réalisé en , avec de la protéase[3]. Blanchi en appel par une cour de justice portugaise[4], il voit sa suspension de deux ans confirmée par le Tribunal arbitral du sport (TAS) en [5]. Le TAS fixe le début de sa suspension au . João Cabreira peut donc reprendre la compétition le [6]. Il court en 2011 pour l'équipe portugaise Onda. En juin, il remporte pour la deuxième fois le championnat du Portugal sur route.