Borussia Dortmund leapfrogged Real Madrid at the top of Champions League Group D after outclassing the nine-times European Cup winners 2-1 on Wednesday.
Poland striker Robert Lewandowski fired the hosts into a deserved 36th-minute lead in front of a sellout 65,000 crowd following a poor pass from defender Pepe.
Injury-hit Real bounced back two minutes later with a delicate lob by Cristiano Ronaldo over keeper Roman Weidenfeller from the edge of the box.
Dortmund then went back in front with a sweet, first-time shot from defender Marcel Schmelzer in the 64th minute after a weak punch by Real keeper Iker Casillas who had made a string of superb saves to keep his team in the game.
The Germans now have seven points from three games, one ahead of second-placed Real.
The Spaniards, with only one victory in their previous 23 games against German teams, went into the match without injured defenders Marcelo, Alvaro Arbeloa and Fabio Coentrao.
Dortmund quickly found their rhythm and twice Lewandowski threatened after Sebastian Kehl had tested Casillas with a 22-metre drive.
Captain Kehl also unleashed a powerful shot from the edge of the box but Casillas, at full stretch, palmed the ball over the bar.
The Spain keeper, though, was helpless when Lewandowski raced into the box courtesy of Pepe's blunder and drilled the ball just inside the post.
With Dortmund fans still celebrating, Ronaldo latched on to a perfect crossfield pass from Mesut Ozil to beat Weidenfeller.
The goal meant Real have now scored in 14 consecutive away matches in the competition, equalling the all-time record held by Bayern Munich and Barcelona.
Casillas again came to Real's rescue early in the second half, blocking a close-range effort from Mario Goetze and punching away a dangerous Marco Reus free kick as Dortmund took complete control.
With Real posing hardly any threat, Dortmund launched attack after attack and they were rewarded when Schmelzer thundered a low left-foot drive beyond Casillas.
(For more sports news and updates, follow Ahram Online Sports on Twitter at @AO Sports and on Facebook at AhramOnlineSports)