Cristiano Ronaldo's first game for Juventus in his native Portugal ended in 2-1 defeat as FC Porto out-played the Italians for much of Wednesday's Champions League last-16, first leg tie.
Such was Juve's lacklustre performance that coach Andrea Pirlo claimed his team handed victory to their hosts on "a silver platter".
Iranian striker Mehdi Taremi put Porto ahead after just a minute at Estadio do Dragao following a Rodrigo Bentancur error.
And Mali striker Moussa Marega added a second straight after the break.
But Federico Chiesa pulled a goal back with eight minutes to go to keep Juventus afloat with the second leg in Turin on March 9.
"The approach was wrong from the first minute," said Pirlo.
"When you concede a goal like this it's normal that fear sets in, you lack a bit of certainty.
"Porto are good at closing down and after that goal it was much more difficult. We served them the match they wanted on a silver platter.
"Fortunately we scored an important goal through Chiesa and now we will focus on the return leg."
It was a below-par performance by Juventus,chasing their third Champions League title and first in 25 years.
Record Champions League goal scorer Ronaldo, 36, drew a blank against a side captained by his Portuguese international teammate Pepe, as the visitors struggled to recover from their early blunder.
"We studied Juventus well," said defender Pepe who won three Champions League titles with Ronaldo at Real Madrid.
"We knew that we had to press hard to keep Juventus from playing. In these type of games it's difficult to concede goals at home, but we played a great game."
It was a shocking start for Juventus, with Wojciech Szczesny sending the ball out to Bentancur, who passed back to the Polish goalkeeper despite Taremi being just on front of goal.
The Iranian quickly pounced to prod past Szczesny for his first Champions League goal.
Porto pressed forward with Juventus almost conceding a second on 23 minutes as Szczesny cleared straight to Sergio Oliveira whose shot was deflected away from goal.
To add to Andrea Pirlo's woes captain Giorgio Chiellini limped off 10 minutes later with defender Merih Demiral coming off the bench.
Pirlo had juggled Juve's defence with Leonardo Bonucci out injured with Alex Sandro returning, playing alongside veteran Chiellini, Matthijs de Ligt and Danilo.
Juve had to wait until four minutes before the break for their first shot on goal with an Adrien Rabiot overhead kick cleared by Porto 'keeper Agustin Marchesin, but the offside flag had already been raised.
The Italians suffered another terrible start to the second half with Marega picking up a Wilson Manafa cross to finish low past Szczęsny.
Ronaldo had to wait until five minutes after the break to have a shot on goal. Weston McKennie nodded the ball into the path of the Portuguese star, whose weak effort was blocked.
However, Chiesa pulled Juventus back into the tie following a Rabiot run down the right with a pull back for the Italian to finish off into the corner of the net.
"The goal will give us strength for the second leg, and it will certainly be another game," said Chiesa.
It was the first goal conceded by Porto in the competition at home this season for the former two-time winners.
Ronaldo had penalty appeals waved away after going down under a Sanusi Zaidu challenge late as the hosts held on for their first win over Juventus in five meetings.