Benfica survived a late scare to earn all three points at Estadio da Luz and qualify for the Round of 16.
The hosts started the match excellently in Lisbon, scoring the opening goal after 17 minutes through Antonio Silva.
Juventus got back into it against the run of play with a Kean goal from a corner.
Just a few minutes later Benfica won a penalty to put themselves back in front, Joao Mario with a goal.
Benfica then scored another two through Rafa Silva, but Juventus got back into the game late on, scoring twice within three minutes.
Benfica held on to progress to the knockout stages.
Salzburg 1-2 Chelsea
Sevilla 3-0 FC Copenhagen
Benfica 4-3 Juventus
Celtic 1-1 Shakhtar Donetsk
Dinamo Zagreb 0-4 AC Milan
Dortmund 0-0 Man City
PSG 7-2 Maccabi Haifa
RB Leipzig 3-2 Madrid