Carlos Tevez cancelled out Ezequiel Garay's opener to put the visitors in control but the Brazilian struck with just six minutes remaining to give Jorge Jesus' men a slender lead
The Brazilian striker picked the ideal time to strike in Lisbon, with his powerful 84th-minute finish giving the Eagles the upper hand heading into next week's return in Turin.
Benfica – who lost last season's final to Chelsea – took the lead in the third minute thanks to Ezequiel Garay's header.
Juventus had no shortage of motivation either, with this year's final to be held in Turin, and after a good second half, levelled proceedings when Carlos Tevez netted a well-taken finish with 17 minutes left.
The goal – Tevez's first in European competition since scoring for Manchester United in April 2009 – looked like it would give the Serie A outfit a crucial draw, but Lima had other ideas.
Benfica goalkeeper Artur Moraes then superbly kept out Claudio Marchisio as the hosts held on for a win that continues their push for a quadruple.
Having already sewn up the Primeira Liga title, Benfica have booked a spot in the Taca de Portugal final and will contest a Taca da Liga semi-final against Porto on Sunday.
It took less than two minutes for Jorge Jesus' men to take the lead as Garay powerfully headed in Miralem Sulejmani's corner from the left.
Slack marking from Leonardo Bonucci allowed Garay a free header, with the defender's decision to push his opponent, instead of challenge him in the air, sure to be questioned by coach Antonio Conte.
Goalkeeper Gianluigi Buffon could not keep the effort out, despite getting two hands to it, and he will have been pleased to see Sulejmani slice an effort wide after a quick Benfica counterattack in the 11th minute.
Juventus – missing star midfielder Arturo Vidal to a knee injury – struggled to make inroads despite a good spell of possession, with Tevez not troubling Artur with a tame 20-yard effort.
An excellent slaloming run from Tevez on the half-hour mark was indicative of Juve's first-half struggles, as the sharp build-up play amounted to nothing, and when they did create another chance, defender Stephan Lichtsteiner was in an offside position when he wasted a free header.
Juve came close to levelling proceedings 10 minutes into the second half, with Artur doing well to tip Paul Pogba's header wide after Marchisio's clever centre.
The Serie A leaders kept pressing, as Lichtsteiner's teasing ball across the face of goal had to be well cleared by Maximiliano Pereira before they were eventually rewarded by Tevez.
Marchisio's ball sent Kwadwo Asamoah free down the left and his cut-back to Tevez allowed the forward time before shooting. And he read the situation superbly, taking a touch to evade the sliding Luisao, before slotting through the legs of Artur to break his European drought.
Lima responded in style for Benfica, though, with the forward hammering a first-time strike home from the edge of the penalty area into the top-right corner, after Ivan Cavaleiro's clever dummy.
Lazar Markovic then shot wide for Benfica and there was still time for Juve to draw level again, only for Marchisio to fire against Artur when played through, before defender Giorgio Chiellini also wasted a late chance.
The result will lift Benfica ahead of Sunday's crucial cup clash, while Juventus are likely to rest players in Monday's Serie A visit to Sassuolo.
Vote for your favourite team and win tickets to the UEFA Europa League final!