Gomez scored the opener on 54 minutes when he pounced on a lost ball from the defender Federico Fazio on the half-way line. Gifted possession, he burst toward the Tottenham goal, out-sprinting the back-tracking Fazio and Jan Vertonghen.
As goalkeeper Hugo Lloris came off his line to meet him, the German chose his moment with perfect calm and his powerful shot left the Frenchman no chance.
Tottenham manager Mauricio Pochettino made a double substitution at 1-0, with striker Harry Kane and speedy Andros Townsend on for winger Nacer Chadli and Nabil Bentaleb.
But Fiorentina struck a second time with questions left to be asked about the Spurs defence.
Recently signed from Chelsea, Salah exposed first Fazio and then Vertonghen with his pace when a sudden burst of speed saw him run into the box in the 70th minute and fire shot into the top corner.
With a League Cup final against Chelsea at Wembley on Sunday, Pochettino made seven changes to the team that started against West Ham United last Sunday.
Tottenham’s substitute striker Roberto Soldado, who started instead of the in-form Kane, who has 13 goals from his past 17 games, blew the chance of the match after half an hour when he under-hit a simple pass to Chadli when two-on-one against goalkeeper Neto with the score still 0-0.
With Soldado running free onto a lovely through ball from Erik Lamela, a goal looked a certainty until the Spaniard fluffed his pass to the onrushing winger, allowing Neto to save easily. Chadli slapped the post in frustration and Soldado hung his head.
Unbeaten in 10 games, Vincenzo Montella’s Fiorentina, who are fifth in Serie A, always looked at ease in their Stadio Artemio Franchi.
They survived a couple of early scares as Christian Eriksen appealed for a penalty that was ignored and Lamela forced a fine save from Neto.
Kane side-footed the ball past Neto on 76 minutes but even he knew he was off-side as he did so.
Tottenham go to Wembley wondering what might have been while Fiorentina go into the hat for the last 16 of the Europa League, the winner of which gets access to a place in the Uefa Champions League next season.
Follow us on Twitter @NatSportUAE