Karim Benzema scored twice for Real Madrid before Borussia Dortmund fought back through goals from Pierre-Emerick Aubameyang and Marco Reus to qualify for the last-16 phase of the comeptition at as winners of Group F.
Both sides went out to win and ultimately ended up with a draw as they played in this cup final-like clash.
After an even start which saw Andre Schurrle fire an effort over the bar and Weidenfeller make saves from Benzema and James Rodriguez, it was Real Madrid who got their noses in front on 28 minutes.
Dani Carvajal broke forward down the right wing and played a low cross across the face of the Dortmund goal, which Benzema poked home to give Madrid the lead.
Dortmund reacted after the opening goal, with Christian Pulisic and Schurrle forcing Navas into action before the break.
The German side then had a couple of golden opportunities to equalise just after half-time. Firstly, Ousmane Dembele shot just wide after dancing his way through the Madrid defence and then Gonzalo Castro scuffed an effort when you'd have put money on him to score.
Dortmund were then made to pay soon after, as Karim Benzema headed Real Madrid into a 2-0 lead when he met a cross from James on the left wing.
However, Thomas Tuchel's side continued to play and just seven minutes later, had reduced the deficit to just one goal when Pierre-Emerick Aubemeyang scored from close range.
Madrid then enjoyed a brief period of dominance and had three clear chances to put the game to bed. Ronaldo brought a brilliant save from Weidenfeller when he shot from just outside the area and then Benzema saw a header cleared off the line.
Ronaldo then came within millimetres of equalising as his effort hit the post when he really should have scored.
Dortmund then punished Madrid for their inability to finish when Aubameyang ran down the right wing and crossed for substitute Marco Reus, who slid the ball past Navas, meaning that Dortmund took a hard-earned point and finish winners of Group F.