The Italian champions made just one change from Saturday's loss to Napoli in Alvaro Morata, who dropped to the bench in favour of Dejan Kulusevski.
Porto were off to a dream start two minutes gone as Mehdi Taremi capitalised on a misplaced back-pass by Rodrigo Bentancur to thump in the roof of the net with Wojciech Szczesny slow to react.
Andrea Pirlo's side battled to get into rhythm following the midway point after Sergio Oliveira drilled a snap-shot from a loose pass around the area narrowly wide of the far corner.
Further jeopardy fell on the visitors ten minutes to the interval with Giorgio Chiellini walking off with a calf injury and Merih Demiral drafted in from the substitutes' bench.
Juventus however finished the first half quite strong after goalkeeper Agustin Marchesin beat away an overhead kick from the centre of the area by Adrien Rabiot following a free-kick.
However, just as the start of the first stanza Juve started the second period the same when Moussa Marega tucked a cutback from the near post into the bottom-corner after cutting an angle.
Oliveira continued to lead Porto's charge for a second midway in the second half with a speculative effort outside the six-yard area, but Szczesny parried.
Juventus halved the deficit eight minutes from time when Federico Chiesa side-footed a cross-field ball from Rabiot into the bottom-corner.
Substitute Morata nearly cancelled out Porto's lead with a clear one-on-one seconds later, but Marchesin made a point-blank save to guide his side to a first-leg victory.