Gomez scored the opener on 54 minutes when he pounced upon a lost ball from the defender Fazio on the half-way line. Gifted possession, he burst toward the Tottenham goal at full pelt, outsprinting the desperately 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 handler Mauricio Pochettino made a double substitution at 1-0 down with striker Harry Kane and speed king Andros Townsend on for winger Nacer Chadli and Nabil Bentaleb. But Fiorentina were to then strike a second time with questions left to be asked about 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 firing a shot into the top corner.
With a League Cup final against Chelsea at Wembley on Sunday, Pochettino had made seven changes to the team that started against West Ham last Sunday.
Tottenham's substitute striker Roberto Soldado, who started instead of the on form Kane – with 13 goals from his last 17 games – blew the chance of the match after half an hour when he horribly under-hit a simple pass to Chadli when two-on-one against goalkeeper Neto with the scores still at 0-0.
Risultato Finale | Full Time: Fiorentina – Tottenham 2-0 (54' Gomez, 71' Salah) #ACFFiorentina #FiorentinaTottemham pic.twitter.com/XZduqjYCXC
— ACF Fiorentina (@acffiorentina) February 26, 2015
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. Neto could hardly believe his luck as he bent to scoop up the ball, Chadli slapping the post in frustration and Soldado hanging his head in shame.
Unbeaten in ten games, Vincenzo Montella's Fiorentina, who are fifth in Italy, 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 then 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 Champions League next season.