Crotone capped a remarkable run of form at the end of the Serie A season by beating Lazio 3-1 on Sunday, a result that led to Empoli's relegation from Italy's top tier.
Home victories over Inter and Udinese had helped to turn around what looked a hopeless situation for Crotone in what was the club's first ever Serie A campaign.
But the minnows still started the final day of the season in the drop zone, requiring 17th-placed Empoli to slip up in their final match, at already-relegated Palermo.
Crotone took the lead against Lazio after 14 minutes, Andrea Nalini tucking home his first Serie A goal from Marcus Rohden's low cross, and when Diego Falcinelli crashed home a header off the underside of the bar, Crotone were on track for a sixth win in their last nine matches of the season.
A Ciro Immobile penalty reduced Lazio's deficit before half-time, but Bastos was dismissed for a second yellow card to make the comeback tougher for the visitors.
Nalini scored his second goal of the game on the hour-mark to guarantee the points for Crotone, but there was still a tense finale in store as supporters awaited the Empoli result.
Rade Krunic went close for Empoli with a shot that went narrowly wide of the post, but Ilija Nestorovski headed Palermo into the lead with 14 minutes to go.
A Bruno Henrique lob doubled Palermo's advantage before Krunic hit back and gave Empoli hope, but Giovanni Martusciello's men could not complete the comeback and they drop to Serie B, along with Palermo and Pescara.