Goals in each half by Mehdi Taremi and Moussa Marega helped Porto register a 2-1 victory over Juventus at the Estadio do Dragao on Wednesday.
The Bianconeri made three changes from the side that lost to Napoli over the weekend. Alex Sandro returned to the starting line-up after recovering from COVID-19, while Weston McKennie and Dejan Kulusevski were also handed starts.
Juventus, however, got off to the worst start possible. A defensive mix-up between Rodrigo Bentancur and Wojciech Szczęsny allowed Mehdi Taremi to pounce on a short pass to put Porto one goal up.
The goal came with barely a minute gone on the clock, and it set the tone for the rest of the first half.
Despite the clear mishap, Juventus seemed intent on playing out from the back. Szczęsny's discomfort was evident early on, with the hosts deploying a very high press to put the goalkeeper and defenders under pressure.
The Bianconeri grew into the game and expectedly dominated the ball, with over 65% possession registered in the first half-hour. Nevertheless, it was the Portuguese champions who were asking all the questions in front of goal.
The impressive Sergi Oliveira was all over the field to stop and launch attacks. Zaidu Sanusi steadily bombarded forward down the Porto left flank, while the ever-green Pepe tidied up effectively at the other end.
Disaster struck for Juventus when captain Giorgio Chiellini had to be substituted after hurting his calf in the 35th minute. The Italy international was replaced by the returning Merih Demiral.
Despite plenty of brilliant play, neither side could get on the scoresheet to ensure Porto went into the break one goal ahead.
The second half started in pretty much the same fashion as the hosts doubled their advantage right from kickoff. Some brilliant footwork by Wilson Manafa allowed him to skip across the Juventus defense with ease before setting up Moussa Marega.
The Kenya international took one brilliant first touch to get in between Demiral and Mathijs de Ligt before slotting a left-footed finish past Szczęsny. However, questions must be asked of why the Juventus defense was breached with such ease.
Having gained a two-goal advantage, Porto manager Sergio Conceicao sought to protect his lead, with goalscorer Marega coming off for Marko Grujic.
Nevertheless, the next best chance of the game fell to the hosts, with Szczęsny forced to tip over an excellent overhead kick by Jesus Corona.
Andrea Pirlo made some attacking changes, with Alvaro Morata and Aaron Ramsey coming on. However, Porto continued to mount pressure on the Juventus goal.
The visitors finally got their name on the scoresheet through Federico Chiesa in the 82nd minute.
A brilliant run by Adrien Rabiot down the left flank saw the France international cut the ball back into the area for Chiesa to score from the edge of the box.
There were some headline moments in injury time. First, Francisco Conceicao - son of the Porto manager - came on for the impressive Sergio Oliveira.
With virtually the last kick of the game, Juventus felt they had a penalty after Cristiano Ronaldo was felled in the box by Chancel Mbemba.
The referee was not interested and blew the final whistle straight after. Replays showed that the Congo international had clearly fouled the Juventus number 7 but the VAR elected to go with the center referee.
The result saw Porto register their first competitive victory over Juventus at the sixth attempt. It also means that the Serie A champions have now lost three of their last four UEFA Champions League knockout games.
The tie is firmly in the balance ahead of the return leg in Turin, which is set to be played in three weeks' time.
Here are five talking points from the UEFA Champions League fixture.
#5 Shaky Wojciech Szczęsny puts his side under pressure
Wojciech Szczęsny was prone to frequent goalkeeping errors earlier in his career and failed to truly make a mark in his seven years at Arsenal.
He has become a more steady presence in goal since signing for Juventus in 2017. However, his old habits came to the fore against Porto.
The Poland international has never been the most comfortable with the ball at his feet, and this much was evident from the first minute of the game. Having conceded a goal so early, the 30-year-old was jittery for the rest of the opening minutes and put his side under pressure with his underhit passes on several occasions.
Szczęsny was constantly put under pressure by Porto's high press and this, in turn, affected other areas of his game. He was unassured in the air, despite this being one of the strongest points of his game.
Having ridden out a storm in the first half, the Juventus goalkeeper once again conceded in the early moments of the second half. Although the goal was not directly his fault, the former Roma goalkeeper would have been embarrassed to have been beaten at his near post.
He made amends with a series of fine saves later in the second half but by then, the damage had already been done.
#4 Federico Chiesa's late goal gives Juventus a lifeline
Juventus were totally outplayed by Porto and were deserved losers in this fixture. If anything, a 2-1 defeat flattered the Turin giants as they could have been on the end of a more emphatic defeat on another day.
Their play lacked cohesion and inventiveness, with the Porto goalkeeper very rarely tested. Having gone two goals behind in this tie, the Bianconeri were left facing a mountain to climb in the second leg before Federico Chiesa's late goal gave them more hope.
This gives them a crucial away goal in the tie, which makes their job much easier at home than would have been the case had they lost by a two-goal margin.