The reward was creating the best early opportunities, with both Higuain and Ronaldo forcing excellent saves from Dortmund's goalkeeper, Roman Weidenfeller.
Sejad Salihovic leveled from the spot and four minutes later had a second penalty opportunity after home keeper Roman Weidenfeller fouled Sven Schipplock and was sent off.
Thomas Muller wrapped up the victory with two late goals, first beating Roman Weidenfeller at the third attempt after the goalkeeper had denied Robben and Schweinsteiger in the 78th minute.