1 Compétitions officielles nationales et internationales senior, incluant le parcours amateur et en équipe réserve. 2 Matchs officiels. Dernière mise à jour : 26 juillet 2023
Né le à Nyon[1], João Oliveira grandit à Eysins et commence le football au FC Gingins, puis au FC Stade nyonnais avant de partir à l'âge de 15 ans au FC Bâle[2].
Carrière en club
En 2013, il rejoint les moins de 18 ans du FC Lucerne, avant de faire ses débuts avec l’équipe réserve en 1re ligue l’année suivante[3].
En manque de temps de jeu avec le club lucernois, il s'engage en prêt jusqu'en avec une année en option, le , avec le club polonais du Lechia Gdańsk, en Ekstraklasa[6]. João Oliveira joue son premier match avec le Lechia Gdańsk le face au Sandecja Nowy Sącz, mais il est remplacé par Flávio Paixão à la 46e minute de jeu (défaite 3-2 au stade Energa[7]). João Oliveira marque son premier but avec le club polonais le , face au Wisła Cracovie, à la 79e minute de jeu, permettant a son équipe d'arracher un nul 1-1[8].
Le , le Vaudois signe au FC Lausanne-Sport pour une durée de trois ans. Sur le site du club, le LS le qualifie comme « prometteur » et comme « jeune talent »[9]. Il joue son premier match avec le LS le , à l'occasion de la première journée de Challenge League2018-2019, face au SC Kriens. Débutant le match en tant que titulaire, les deux équipes se quittent sur un match nul 1-1 au stade olympique de la Pontaise[10]. João inscrit son premier but avec les bleus et blancs le , face au FC Aarau, lors d'un match de championnat, à la 34e minute de jeu (match nul 2-2 au stade du Brügglifeld[11]).