The visitors needed two points in the remaining two rounds to guarantee Serie A safety. Simone Bastoni was suspended, with Leo Sena, Ebrima Colley and Hristov injured, while the hosts had Rodrigo Becao banned, Beto and Isaac Success on the treatment table.
However, Udinese took the lead when Ivan Provedel made a fine save on Destiny Udogie’s header, but Giulio Maggiore gave it straight back to Nahuel Molina for a ferocious first-time strike into the far top corner from a tricky angle.
The visitors turned it around completely in first half stoppages and again Ferrer was the provider, this time a sliding tackle to gain control from Pablo Marì and setting up Emmanuel Gyasi for a smart turn and finish from 12 yards.
Udinese were still in the locker room when the second half kicked off and Spezia took full advantage by going 3-1 up. Verde got a low cross in from the left and Maggiore bundled over the line in two attempts, as Silvestri got something on the first.
The Friulani struggled to mount much of a reaction, Molina twice turning wide in the same move from Gerard Deulofeu crosses.
Spezia had a penalty in stoppages when Molina shoved Viktor Kovalenko mid-air and Manaj insisted on taking the penalty, but blasted it well over the bar.
This prompted a very late scare, because Udinese got one back when Deulofeu’s free kick was flicked in off the head of Pablo Marì.
Udinese 2-3 Spezia
Molina 26 (U), Verde 35 (S), Gyasi 45 (S), Maggiore 47 (S), Pablo Marì 93 (U)
Missed penalty: Manaj 91 (S)