Inter won an astonishing, heart-stopping game that relegates Empoli to Serie B and secures the Nerazzurri’s Champions League status.
The battles for Serie A safety and Champions League football intersected at San Siro, because both teams needed a win to be sure of their targets, or keep an eye on other results going their way.
Stefan de Vrij returned from injury to restore the first choice defence, while Mauro Icardi was chosen instead of Lautaro Martinez. Empoli were not able to get Rade Krunic fit in time, along with Luca Antonelli, Antonino La Gumina, Kevin Diks and Lorenzo Polvani.
It was a very aggressive start from the hosts, Bartlomiej Dragowski getting down for a fingertip save on Ivan Perisic’s daisy-cutter, then Matias Silvestre flung himself in the path of a Matteo Politano volley like a human shield.
Dragowski started to turn on the style with two great one-handed saves on a Marcelo Brozovic screamer and particularly impressive reaction to a close-range header.
However, Empoli were dangerous on the counter and Ciccio Caputo sprung the offside trap, forcing Samir Handanovic to come rushing out to parry with his body.
Politano’s first touch let him down after a poor Dragowski clearance, but the goalkeeper – on loan from Fiorentina – continued his heroics with a one-handed flying save on Kwadwo Asamoah’s strike at the top corner.
Luciano Spalletti introduced Keita Balde Diao for Asamoah and within 22 seconds of the restart his cross-shot had forced a corner.
It proved a masterstroke of a substitution, because Keita cut inside past two defenders and drilled a right-foot daisy-cutter from outside the box into the far bottom corner.
That goal changed everything, as suddenly Inter and Atalanta were in the Champions League and Empoli going down to Serie B.
There was controversy when Icardi tried to intercept a Giovanni Di Lorenzo back-pass and went down under contact with Dragowski, but it looked as if the goalkeeper got some of the ball. Even after viewing it again on VAR, the referee confirmed his decision, but Dragowski stuck out a leg to parry the Icardi spot-kick and keep Empoli within a goal of Inter.
Handanovic was on his toes and made a decisive interception to pluck the ball off the feet of Farias, who had sprung the offside trap on an inspired Hamad Junior Traore slide-rule pass.
They didn’t heed the warning, because Empoli equalised to silence San Siro. Substitute Salih Ucan got to the by-line and pulled it back for unmarked Traore to tap in totally undisturbed at the back post.
Not only did this result put Inter in the Europa League, but also relegate Genoa rather than Empoli.
It didn’t last long, because Matias Vecino surged forward from midfield, his low shot bounced off the far post and Radja Nainggolan kept his cool to turn in the rebound.
Empoli continued to give it everything and almost equalised at the 89th minute, but Danilo D’Ambrosio’s goal-line clearance bounced off the crossbar and out in an extraordinary sequence of events.
Moments later, Handanovic was decisive rushing off his line to parry at the feet of Salih Ucan, as Inter were under siege.
Empoli threw everyone up for a corner deep into stoppages, including goalkeeper Dragowski, so Marcelo Brozovic broke away on the counter and rolled it into an empty net from midfield. However, after viewing it on VAR, the referee saw Keita had rugby tackled Dragowski to stop him getting back in time. The goal was disallowed and Keita received a second yellow card – the first was for taking his shirt off after the goal – to be sent off.
Empoli resumed their siege in every last second they had, but Handanovic plucked a Farias header out of the air.
See the latest Serie A predictions and betting tips with Eurotips.co.uk
Saved penalty: Icardi 61 (I)
Sent off: Keita 96 (I)