The Serie A side, beaten 4-1 in Cardiff last season, will host the first leg in Turin following the draw at UEFA headquarters.
The last eight also produced an all English pairing as Liverpool were thrown together with Premier League leaders Manchester City.
In the other ties, Barcelona will face AS Roma, bringing back unhappy memories for the Italian side who lost 6-1 on their last visit to Camp Nou, and Sevilla, who beat Manchester United in the last round, will take on Bayern Munich.
The first legs will be played on April 3/4 with the return matches one week later.
Juventus, who will host the first leg, were thumped 4-1 by Real in last season's final in Cardiff, although the Turin side came out on top when they last met over two legs, in the semi-finals in 2015.
Overall, the teams have faced each other 19 times with eight wins for Juve, nine for Real -- including the 1998 final -- and two draws.
"In last year's final we only played well for the first 45 minutes," said Juventus vice-president and former midfielder Pavel Nedved.
Read More (...)