This was the first meeting between the teams since the 1997 final, which Dortmund won 3-1 to snatch the trophy from then defending champions Juve, but it was the Serie A outfit who dictated play for the most part on Tuesday.
Carlos Tevez pounced on some clumsy goalkeeping from Roman Weidenfeller to give Juve a deserved lead in the 13th minute, and it was another defensive mishap that led to Dortmund's equaliser five minutes later.
Marco Reus stole in to penalise a Giorgio Chiellini stumble with a composed finish, but Alvaro Morata struck two minutes from the break to earn Juve a narrow advantage heading into the return leg in three weeks' time.
The result means Juve have now gone 47 games unbeaten at home in all competitions - last tasting defeat to Dortmund's Bundesliga rivals Bayern Munich in April 2013.
Ciro Immobile returned from illness to lead the Dortmund line against his former club and fired an early warning signal when a shot from distance strayed just off target.
The visitors also boasted Reus and Pierre-Emerick Aubameyang as part of a menacing attacking line-up, while Juve brought in fresh defensive legs in the shape of Patrice Evra and Stephan Lichtsteiner - promoted from the bench following Friday's 2-1 Serie A victory over Atalanta.
It was the hosts who broke the deadlock after 13 minutes.
Morata - added to the Juve attack along with Arturo Vidal - had the beating of his man on the left of the penalty area, and goalkeeper Weidenfeller could only push the Spaniard's low cross into the path of a grateful Tevez for a simple finish.
The lead lasted just five minutes, though, with Reus capitalising on a Chiellini slip to stroll through one-on-one with Gianliugi Buffon and coolly slot home.
Dortmund were forced into a change as the clock ticked past the half-hour mark when Lukasz Piszczek felt the full force of a Paul Pogba sliding challenge.
The momentum of the half was interrupted and Andrea Pirlo was next to limp from the field, with Roberto Pereyra coming on in his place after 37 minutes.
That setback did not knock Juve off their stride, though, with Morata diverting home a Pogba cross two minutes from half-time.
Morata blazed over from six yards out seven minutes into the second half, although the linesman's flag had already been raised for offside, and Weidenfeller thwarted another Juve chance from a Claudio Marchisio corner with Leonardo Bonucci closing in soon after.
Immobile turned in the box to remind Buffon of the danger posed by Dortmund's attackers with a low strike in the 56th minute, but it was Juve who continued to pose the bigger threat, with Tevez sending an effort trickling wide of the left-hand post with 20 minutes to go.
The Argentine stung the palms of Weidenfeller again and Pereyra sent the ball agonisingly wide of the right-hand upright before time was up, but Juve had to sette for a one-goal advantage, while Dortmund may be satisfied with Reus' potentially crucial away goal.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.