Stylistically, this week's two Champions League semi-finals were easy to categorise – Bayern Munich against Barcelona was supposedly a clash of two possession-based sides, Dortmund's meeting with Real Madrid about quick counterattacking. In the end, there was a clear similarity in the German triumphs – they both imposed their physique and energy on the game, to stifle the Spanish sides' creativity and burst forward into attack relentlessly.

This tactical battle was all about tempo. José Mourinho's decision to play Luka Modric ahead of Angel Di María altered Real's approach. The Argentinian winger's wife gave birth this week, which had put his participation in doubt, although it is difficult to believe a key player such as Cristiano Ronaldo or Xabi Alonso would have been omitted in similar circumstances. Modric was supposed to offer extra guile and creativity: a third playmaker along with Alonso and Mesut Ozil, who was moved to the right.

But Dortmund wanted a fast-paced game based around pressing and quick transitions, and either side's period of dominance fitted this pattern. The first 10 minutes were incredibly quick as Dortmund forced Real into aimless long balls downfield and pressed intensely in midfield to win the ball instantly, springing forward to put Real's centre-backs under immediate pressure. Robert Lewandowski's opener arrived after only eight minutes but the goal had been coming.

Alonso struggled to cope with Mario Götze's movement, with the Bayern-bound playmaker drifting either side of him to overload Real in wide areas. The fluidity from the Dortmund front four was marvellous. The wingers Marco Reus and Jakub Blaszczykowki often darted into the middle without problems with congestion and, although Dortmund's forward running was primarily impressive because of the stamina levels, there was also an admirable selflessness about the decoy movement.

The pace of top-level matches generally decreases after around 10 minutes but the effect was particularly obvious here. Dortmund were too passive after their goal, allowing the Real centre-backs Pepe and Raphaël Varane to grow into the contest after a nervy start. In the opening moments, Dortmund used Lewandowski and Götze cleverly, with both dropping off to deny Alonso time on the ball. Their defensive discipline declined significantly as the first half progressed, however, and whereas Alonso's passing was sloppy in the opening moments, he was given licence to conduct the game before half-time. Gradually, Real's passing improved in the buildup to Ronaldo's equaliser.

It seemed like Dortmund required Jürgen Klopp to underline their strategy at half-time, because the home side started the second period with another burst of energy. Ilkay Gundogan was crucial during this spell, with the young German replicating the powerful box-to-box role Bayern Munich's Javi Martínez played the previous night. Reus's dribbling ability was another key factor in driving Dortmund forward, and whereas in previous rounds Lewandowski has dropped deep to link play, this time he left creativity to others and concentrated on working as a ruthless penalty box poacher.

It would be easy to suggest Real's problem was their inability to match Dortmund's running – but the point, of course, was that they were attempting to connect midfield and attack through technique and creativity instead. Alonso, Modric and Ozil had decent individual moments but in a relatively unfamiliar starting shape Real lacked cohesion with their movement and passing, and neither Gonzalo Higuaín nor the substitute Karim Benzema could match the class of Lewandowski.