A victory in Turin would have sealed Madrid's spot in the next phase but they had to content themselves with a point against a Juve side who now find themselves propping up Group B after FC Copenhagen beat Galatasaray 1-0.
That is tough on a Juve side who bossed the first half against Madrid and deservedly led at the break through Arturo Vidal's penalty.
However, Madrid turned the game on its head at the start of the second half as Cristiano Ronaldo and Gareth Bale scored in quick succession to make it 2-1 before Juve snatched a point when Spain international Fernando Llorente headed them level.
Madrid, who are now six points clear with two games left in Group B, started brightly enough and Bale did well to rob Martin Caceres of the ball and drive in a shot which forced Gianluigi Buffon into a save.
However, after that Juve took the game by the scruff of the neck and it needed two brilliant saves from Iker Casillas to keep the hosts at bay.
The veteran Spain international is no longer first-choice goalkeeper at Madrid but showed he is far from a spent force as he produced great reflex stops to keep out a Paul Pogba cross that was sliced goalward by Pepe and then turn away Claudio Marchisio's far-post header with his foot.
Casillas was also called on to parry a Vidal shot as Madrid's defence, which has looked very shaky in their last two league games, again came under threat.
Juve continued to push and finally made the breakthrough five minutes before the interval when the sliding Raphael Varane brought down fellow Frenchman Pogba inside the area - the fifth penalty Madrid have conceded in their last three games.
Casillas had been unbeatable up until that point but, despite guessing the right way, he had no chance with Vidal's perfectly-penalty into the top corner.
That lead was no more than Juve deserved, but their hard work was undone just seven minutes into the second half following a mistake by Caceres.
His attempted pass was half-stopped by Ronaldo, with the deflection going to Karim Benzema and he threaded a pass back into the path of Ronaldo for the Portugal international to coolly slot past Buffon.
With their tails up, Madrid almost went ahead two minutes later when Xabi Alonso's thunderous left-footed half-volley out rattled the bar.
The visitors had an escape of their own soon after though when Casillas again did well to block from Marchisio before Carlos Tevez saw his follow-up blocked on the line by Pepe.
It was Madrid who would net the next goal though as the world's two most expensive players combined to make it 2-1.
Ronaldo played the ball across the edge of the box to Bale, who ran at Kwadwo Asamoah before drilling a left-footed shot inside the near post.
That lead lasted just five minutes, however, before Juve drew level.
Caceres sent over a pinpoint cross from the right and Llorente got in behind Varane to guide a downward header past Casillas.
Both teams had chances to net a winner after that but neither could manage it as the points were shared.