Acheté par le club neuf ans plus tôt, Leonardo dispute son premier match avec la Juventus FC le chez le Bologne FC, lors des huitièmes de finale de la Coupe d'Italie 2018-2019, titulaire au poste de défenseur latéral gauche (victoire 0-2). Le , il débute en Serie A sous le maillot "Bianconeri" contre le Chievo, remplaçant Federico Bernardeschi à la 86e minute (victoire 3-0). Il est titulaire le lors du match nul 3-3 contre Parme, et encore un mois plus tard pour la victoire 4-1 contre Udinese. Il est titularisé pour son premier match de Ligue des champions de l'UEFA le pour le match retour des huitièmes de finales contre l'Atletico Madrid, remplaçant Alex Sandro. Lors du match retour, il réalise une prestation remarquée (3-0), avant d'être remplacé à la 67e minute par Paulo Dybala.