Juventus will take a narrow lead into their Champions League semi-final second leg with Real Madrid after a 2-1 win in Turin.
The hosts took the lead early on through former Real Madrid striker Alvaro Morata, but Cristiano Ronaldo levelled against the run of play just before the half-hour mark with a simple header.
Carlos Tevez restored Juventus' advantage from the penalty spot after being brought down Dani Carvajal, and came close in the latter stages to securing the Serie A giants a two-goal lead ahead of next week's trip to Spain.
The onus is now on Real at the Bernabeu in the return leg as they seek to become the first side to retain the Champions League crown in its modern form.
Juventus started the first half the brighter, and had a chance inside two minutes through Arturo Vidal, who pondered on the ball too long while one-on-one with Iker Casillas.
But they went ahead on eight minutes through Morata, who made 52 appearances for Real between 2010 and 2014, after good work from Tevez.
The Argentine found space inside the penalty area and saw his low strike parried by Casillas into the path of Morata, who applied a simple finish before a muted celebration.
Real were struggling to deal with Juve’s intensity but managed to force a good save out of Gianluigi Buffon with Tony Kroos’ long-range effort.
And despite Juventus dominating the first half-hour, Real were level when Ronaldo netted his 76th Champions League goal - taking the Portuguese one clear of La Liga rival Lionel Messi in the list of the tournament's all-time top scorers.
After patient build-up play, Isco fed James Rodriguez on the right of the penalty area, before his perfectly weighted ball was converted by the head of Ronaldo at the far post.
Live UEFA Champions League
And the current holders nearly went into half-time ahead, but James’ close-range header cracked off the crossbar from Isco’s ball across the penalty area.
After the break, Tevez, who won the Champions League with Manchester United in 2008, broke free for Juventus from a Real Madrid corner, and got the other side of Carvajal before being brought down by the defender.
He picked himself up to drive the penalty down the middle for his seventh Champions League goal of the season and 29th overall.
Substitute Fernando Llorente rounded Casillas late on but could not find a team-mate to cut ball back to, before the Spanish striker's late free header at the back post from Andrea Pirlo's free-kick was gratefully collected by the Real goalkeeper.