Germany striker Gomez had not scored since returning in February after five months out with a knee injury but tilted the tie in his team's favour with a 79th-minute strike while Real Betis tore up the form book to win 2-0 at local rivals Sevilla.
Valencia played for more than an hour with 10 men but still beat Ludogorets 3-0 in Bulgaria.
The goals, however, dried up for the previous round's big scorers Salzburg who were held to a 0-0 draw at Basel, ending a run of 14 successive wins in all competitions.
The clash between Juventus and Fiorentina was a replay of the 1990 UEFA Cup final and came four days after the two sides met in Serie A.
Juventus, three places and 27 points clear of their domestic rivals, won 1-0 on Sunday and took the lead after three minutes when the ball fell kindly at the feet of Arturo Vidal and he dispatched it powerfully into the net from 10 yards.
Yet their failure to kill off the tie gave hope to Fiorentina who grew in confidence and eventually punished their hosts late on.
Gomez, who tore ligaments in his right knee in September, came off the bench in the 67th minute and made a decisive impact, controlling a lofted pass before shooting through the legs of Juventus keeper Gianluigi Buffon.
The first Seville derby in Europe did not go according to the script as Sevilla, seventh in La Liga, suffered a shock home reverse against their struggling rivals Real Betis who are bottom of the domestic table.
Betis took the lead when Baptistao powered a header into the roof of the net after 15 minutes and Salvador Sevilla put the result beyond doubt in the 77th minute when he drove the ball into the far corner of the net.
Bulgarians Ludogorets fell behind against a Valencia team unbeaten since matchday one of the group stage when Antonio Barragan fired a low drive into the bottom corner after five minutes.
The Spanish side were reduced to 10 men 19 minutes later, however, when Seydou Keita was dismissed for bringing down Roman Bezjak, who spared the visitors a double punishment by fluffing the resulting penalty.
Valencia made the most of the let-off when Fede Cartabia volleyed the ball low into the bottom corner after 33 minutes and Philippe Senderos grabbed his first goal for the club, heading home unmarked in the second half.
Juninho Quixada was sent off for Ludogorets with 10 minutes remaining for kicking out.
Salzburg were fresh from a 6-1 aggregate success over Ajax in the last 32 but found Basel a tougher nut to crack in Switzerland, with the Austrian side failing to score for the first time this season.
Gueida Fofana scored twice as Lyon comfortably beat Viktoria Plzen 4-1 and AZ Alkmaar won 1-0 at home to Anzhi Makhachkala.
- Sports & Recreation
- Real Betis
- Mario Gomez
- Europa League