The Spain Under-21 international took on the Bayern defence alone from 40 yards out, dribbled the ball past three more opponents before curling it into the bottom corner with a beautiful finish past the diving Manuel Neuer to hand his side the lead after 11 minutes.
Bayern almost levelled two minutes later before Arturo Vidal’s header was sent out for a corner and Xabi Alonso’s resulting set-piece was finally made safe after Vidal’s further effort was collected by Jan Oblak.
The German champions continued to press for an equalizer as the half wore on but Philipp Lahm’s effort was blocked by Jose Gimenez, while, down at the other end, Antoine Griezmann’s close-range effort was toe-tipped to safety after a classic Atleti counter-attack.
The visitors started the second-half the brightest as Guardiola’s half-time team talk looked to have made an impact, Alaba’s long-range strike only denied by Oblak’s crossbar eight minutes in.
Moments later, the Atletico keeper did well to hold out Javi Martinez’s header and hold onto his clean sheet for a little longer as the German side continued to dominate possession.
Robert Lewandowski was unfortunate as his effort across Oblak’s goal rolled just wide before Guardiola brought on Franck Ribery for Coman in an effort to bag an equaliser.
Bayern’s frustrations started to get the better of them and Vidal conceded a free-kick with 20 minutes to go for bringing down Gabi but Douglas sent his weak shot over the bar as the home side searched for goal number two.
Torres then struck the post from close range and – on the rebound – Koke’s drilled shot was comfortably kept out by a diving Neuer.
Bayern battled on for an equalizer but Oblak denied Vidal late on as the home side held on for a the victory.
Great result for Atleti who ran themselves into the ground again for Diego Simeone. Simeone will feel confident that they can grab a goal in Munich next week, while will make Bayern’s chances of advancing any more daunting.
Despite 75% possession, Pep Guardiola has now seen his side fail to score for a third straight European semifinal on Spanish soil. Following exits against Barcelona and Real Madrid in each of the past two seasons, Guardiola will hope it’s third time lucky on Tuesday in Munich.