Mehdi Taremi gave the home side an early lead in the second minute and Moussa Marega doubled Porto's lead in the 46th minute.
In the 82nd minute, Federico Chiesa made the score 2-1, but Juventus failed to equalize in the rest of the match at the Estadio do Dragao in Porto, Portugal.
In another Round of 16 match, Borussia Dortmund sealed a 3-2 victory against Sevilla to gain a huge advantage to qualify for the quarterfinals.
Erling Haaland scored twice and Mahmoud Dahoud found the net for the visitors at Ramon Sanchez Pizjuan Stadium in Seville, Spain.
Suso and Luuk de Jong scored for the home side.