The hosts enjoyed a narrow 1-0 win over the Viola in Serie A on Sunday to maintain their title charge and it looked as though it would be a case of deja vu for Vincenzo Montella's side after Arturo Vidal's early opener.
Both sides had plenty of goalscoring opportunities after that and it was the visitors who took were the more ruthless, with substitute Gomez scoring his first goal since returning from a knee injury in February and set up an intriguing second leg.
In what was a strong start, Juve needed less than three minutes to open the scoring, Vidal firing home from close range after Sebastian Giovinco had done well to chest Claudio Marchisio's powerful cross into his path.
Vidal was in the thick of it again soon after when he flashed an effort wide from distance as Antonio Conte's men made all of the early running.
Stefan Savic was forced to clear Kwadwo Asamoah's delivery from a dangerous position before Alessandro Matri had Fiorentina's first chance - diverting Alberto Aquilani's effort wide of Gianluigi Buffon's right-hand post.
That sparked a short spell of pressure from Montella's men - Matias Fernandez forcing Buffon into a smart save with Asamoah required to acrobatically clear the rebound before the onrushing Borja Valero could follow up.
Vidal threatened twice more late in the half - both with headed efforts - seeing the first saved by Neto before the crossbar denied him seven minutes from the interval.
Juve were given a scare early on when Valero dispossessed Angelo Ogbonna in possession and found himself through on goal, before referee Bjorn Kuipers brought play back for a foul on the defender.
With the home side keen to avoid conceding an away goal and Fiorentina eager not to fall further behind in the tie, the tempo dropped somewhat and chances became scarce.
However, Gomez needed only one sight of goal when, after being involved for just 12 minutes, he brought down a long ball and slipped the equaliser past the onrushing Buffon.