Porto scored at the start of each half to beat Juventus 2-1 in the first leg of the round of 16 of the Champions League on Wednesday.
Mehdi Taremi gave Porto the lead after just 63 seconds after a defensive mixup by Juventus gifted him an easy finish, and Moussa Marega netted 19 seconds into the second half.
Federico Chiesa scored what could prove to be a vital away goal for Juventus in the 82nd minute.
“Our approach changed after a minute, because when you concede like that after a minute you lose confidence,” Juventus coach Andrea Pirlo said. “The lads let their heads drop a but and they (Porto) could play the match they wanted, closing themselves up and counterattacking.
“Luckily we managed to get back on track for the return match with Chiesa's goal. We shouldn’t have played this type of match and it’s a pity, we could have done better. We had prepared a different game.”
Juventus forward Cristiano Ronaldo was kept quiet on his return to his homeland as the visitors struggled to make an impact, although the Portugal international did have a penalty appeal waved away in the final seconds of stoppage time.
The second leg will be on March 9 in Turin.
“Juventus had its first dangerous shot only in the 70th minute and we are talking about the Italian champion, a very strong team with some of the best players in the world,” Porto coach Sérgio Conceição said. "That shows the solidity of our performance.
“We could have made it 3-0. ... It is bittersweet: the players did not deserve the goal we conceded.”
In the other round-of-16 match on Wednesday, Borussia Dortmund came from behind to win 3-2 at Sevilla.
Juventus beat Porto home and away without conceding a goal the last time the two sides met at the same stage four years ago.
But it gifted Porto the lead after barely a minute when Juventus midfielder Rodrigo Bentancur attempted to play a back pass to goalkeeper Wojciech Szczesny, not realising Taremi was right behind him to intercept and slot home from six yards.
Juventus appeared to lack energy and ideas and its night got worse in the 35th when captain Giorgio Chiellini limped off with a calf injury.
Porto was even quicker off the mark at the start of the second half when Wilson Manafá ran down the right before rolling across for Marega to turn in at the near post.
Juventus coach Andrea Pirlo brought on forward Álvaro Morata shortly after the hour mark for Weston McKennie.
Morata had scored six goals in as many Champions League appearances this season and Juventus looked more dangerous after he came on.
Porto hadn't conceded a goal at home in the Champions League this season but that streak came to an end when Adrien Rabiot burst down the left and crossed for Chiesa to fire a first-time shot into the far corner.
Chiesa became the first Juventus player apart from Ronaldo to score in a Champions League knockout game since Blaise Matuidi in 2018.
That appeared to wake Juventus up and it came close to snatching what would have been an undeserved draw.
Ronaldo was left furious when he went down under a challenge from Zaidu Sanusi seconds before the full-time whistle and the incident was not looked at on video review.