It was a game of two halves in Turin, as Bayern Munich dominated, but Juventus came back from 2-0 down for 2-2.
The second leg is in three weeks' time and remains open, albeit difficult.
These sides were both dealing with injury problems, as the hosts missed Giorgio Chiellini, Alex Sandro and Kwadwo Asamoah, but Mario Mandzukic and Sami Khedira made their comebacks after muscular problems. Bayern had to revamp their defence without Javier Martinez, Jerome Boateng and Holger Badstuber, while Xabi Alonso was surprisingly benched.
There was a scare within four minutes when Arturo Vidal, returning to face his former club, unleashed a volley from the edge of the box to sting Gigi Buffon’s gloves.
As expected, Juve allowed Bayern possession and waited to hit them on the counter, Mandzukic sliding in and just failing to get decent contact to a Paulo Dybala cross.
Bayern should’ve been 1-0 up after 13 minutes when Philipp Lahm pulled back for Thomas Müller, but he tried to take an extra touch and only meekly prodded it towards goal, allowing Leonardo Bonucci to clear.
Douglas Costa was booked for tripping Juan Cuadrado and Paul Pogba had penalty appeals when his cross was chipped on to Vidal’s hand, while Arjen Robben’s shot on the half-volley flew over the bar.
Buffon got down to beat away a Juan Bernat strike from just inside the box and Robert Lewandowski’s header from a free kick was comfortably plucked out of the air.
Robben’s header was over from a corner and David Alaba crucially intercepted Dybala’s assist for Mandzukic when clear on goal.
Bayern Munich dominated possession in the first half with over 70 per cent and eventually made it count. Robben’s cross was volleyed back in by Douglas Costa and the clearance only came as far as Müller to fire in from 12 yards. However, replays show the goal should’ve been disallowed, as there was a Bayern player offside standing in the path of the ball, blocking Buffon’s vision.
Max Allegri had to make changes after a dismal first half, but one was forced upon him, as Claudio Marchisio went off with a muscular problem. Rather than Stefano Sturaro or Roberto Pereyra, he surprisingly introduced Hernanes.
Bayern doubled their lead surprisingly with a counter-attack, as Cuadrado lost possession in midfield and Robben cut in to curl home with his splendid left foot. Juve complained Lewandowski shoved Bonucci during the build-up.
The Bianconeri finally had an attacking move and scored, as Joshua Kimmich’s poor clearance was prodded on by Mandzukic for Dybala to burst into the box and sweep the left-foot finish past Manuel Neuer.
Juventus finally seemed to wake up, as Cuadrado’s strike was fingertipped over the bar by Neuer and Pogba’s curler clipped the top of the far post.
Allegri threw on Alvaro Morata, who immediately scuffed his shot from the D, but then set up the equaliser as Juve fought back from 2-0 down to equalise. Mandzukic flicked on a Pogba pass for Morata to nod back across the face of goal and fellow substitute Sturaro came sliding in to score from six yards.
It was like a completely different game, as Pogba’s header was over, while Medhi Benatia nodded a corner on to the roof of the net.
Leo Bonucci’s volley from the edge of the box was straight at Neuer.
Juventus 2-2 Bayern Munich
Scorers: Müller 43 (B), Robben 55 (B), Dybala 63 (J), Sturaro 76 (J)
Juventus: Buffon; Lichtsteiner, Barzagli, Bonucci, Evra; Cuadrado, Khedira (Sturaro 68), Marchisio (Hernanes 46), Pogba; Dybala (Morata 74), Mandzukic
Bayern Munich: Neuer; Lahm, Kimmich, Alaba, Bernat (Benatia 74); Vidal; Robben, Thiago Alcantara, Müller, Costa (Ribery 84); Lewandowski
Ref: Atkinson (ENG)