Inter’s lethal finisher scored an injury-time winner in a derby notable for the feelgood factor among both sets of fans

“An assassin.” That was how Gonzalo Higuaín described Mauro Icardi in the build-up to Sunday’s Derby della Madonnina. Invited by Gazzetta dello Sport to name the attributes he would most like to steal from his compatriot, the Milan striker replied: “His heading ability and his sense of timing.”

It appears that no such theft could be arranged. Icardi demonstrated both qualities as he arrived to head home a 91st-minute winner in a match that had looked certain to finish as a goalless stalemate.

He got some help from Gianluigi Donnarumma, the goalkeeper misjudging Matías Vecino’s cross from the right. The quality of the striker’s movement, however, also needs to be acknowledged. Icardi drove his initial run toward the front post, guiding Mateo Musacchio in that direction before stepping away sharply to leave his marker off balance. Donnarumma was likewise taken in by those forceful first steps.

The header was only Icardi’s 15th touch of the game, yet the second time he had put the ball in the net. His previous strike had been correctly disallowed for offside following a VAR review.

No matter. Inter did what Inter do this season: saving their best till last. This was the seventh goal they had scored in the last 15 minutes of a match, and sealed their seventh consecutive victory across all competitions. Inter are third in the table, and will travel full of confidence to the Camp Nou this week for a Champions League showdown with Barcelona.

Eleven Sports (@ElevenSports_UK) | WINNER! |



Milan is blue and black! 🔵⚫



Mauro Icardi's header gives #Inter a dramatic #DerbyMilano victory. It finishes #InterMilan 1-0 #ACMilan.#EarnTheirStripes pic.twitter.com/aHP4MiB8qB

Nobody, though, was thinking about that on Sunday night. The derby is always a match unto itself but this one felt even more significant. It has been at least half a decade since fans on both sides of the city divide could arrive at this fixture feeling so optimistic about their teams’ direction of travel.

Miralem Pjanic: ’We were in danger. Football wasn’t the most important thing’ | Paolo Bandini Read more

San Siro rocked before kick-off, and not only for the violent winds whipping through the stadium. Inter ultras in the Curva Nord had been planning their coreografia for months, a vast snake chasing Milan’s devils away. Their Milan counterparts countered with two hands ripping the same animal in two.

The Rossoneri had put together an eight-game unbeaten run of their own, their only defeat coming away to Napoli. Even then, they had given last season’s runners-up a serious scare after jumping out to a 2-0 lead.

Nor were results on the pitch the only source of encouragement. The repossession of the club by Elliott Management from the enigmatic Li Yonghong has restored a sense of stability. That Paolo Maldini felt willing to accept a director’s role, working alongside Leonardo, is indicative. He had previously refused similar invitations, citing an absence of coherence and long-term vision.

And then there was the capture of Higuaín. Even after last summer’s €200m transfer blowout, and the disappointing season that followed, the arrival of an elite goalscorer sparked the imagination. In the 10 days after his signing, season ticket sales almost doubled.

Facebook Twitter Pinterest Tiemoué Bakayoko and Gonzalo Higuaín cut dejected figures after the late goal. Photograph: Antonio Calanni/AP

Inter, though, had acquired their own feelgood factor. For the first time in six years, the Nerazzurri were back in the Champions League. The squad that finished fourth last time out had been reinforced with the signings of Radja Nainggolan, Stefan de Vrij, Keita Baldé, Lautaro Martínez and Sime Vrsaljko. Even an unconsummated flirtation with Luka Modric gave supporters licence to dream.

Neither club’s trajectory could be invalidated by a single defeat. Inter did offer evidence in victory, though, that they are the better side right now.

Icardi’s goal arrived late, but they had dominated the first half – De Vrij hitting the post while others drew saves from Donnarumma. A superb sliding tackle was required from Alessio Romagnoli to thwart Icardi after he was played through by Borja Valero.

The Fiver: sign up and get our daily football email.

The latter had been thrown in as a first-half replacement for Nainggolan – who injured his ankle during a pair of robust challenges with Lucas Biglia. Each was guilty of lunging in recklessly as they renewed hostilities from their time playing on opposite sides of the Rome derby. Only the Argentinian was shown a yellow card.

Bayern Munich back in credit but storm clouds continue to hover | Andy Brassell Read more

Ivan Perisic appeared to suffer a thigh injury in the first half too, though he soldiered on before eventually limping out in the 70th minute. Perhaps his struggles had some impact on a lacklustre second half, though his has been an indifferent season in general.

In any case, the game did lose momentum. The first 45 minutes had been played at a high tempo, with Inter mostly on top but Milan also seeing a goal disallowed. After the interval, things became sluggish. Until Icardi’s last-gasp intervention, it appeared very much that we were heading for what would have been just the third goalless stalemate between these sides since 2004.

But then, the assassin appeared. Perhaps we should have seen it coming. Milan had not kept a clean sheet since April – a run that now stretches to 14 games. Icardi had punctured them four times already in their previous three league meetings.

At full time, he basked in the glow of success, running up into the stands to share a kiss with his wife, and agent, Wanda. “When the victory arrives like this,” he said, “it’s even more beautiful.” The black-and-blue half of the city could hardly disagree.

Talking points

• Injuries provided the one sour note for Inter. Nainggolan will miss the trip to Barcelona, and Luciano Spalletti expressed doubts over Perisic or Marcelo Brozovic playing after both suffered thigh injuries.

• Some people had begun to doubt whether it would happen, but finally it has: for the first time this season Krzysztof Piatek failed to score. Wait, did you think I was talking about Juventus dropping points? Oh yeah, that too. In the same game. Massimiliano Allegri criticised his players for a sloppy second half,

epitomised by the equaliser. Juventus’s defenders switched off as the ball bounced towards the line for what would have been a corner, only for Christian Kouamé to keep it in and swing in a cross for the alert Daniel Bessa.

Eleven Sports (@ElevenSports_UK) | GOAL! |



Daniel Bessa gets it for the away side - the perfect #Juve record is in doubt!

@juventusfcen 1-1 @GenoaCFC pic.twitter.com/twdHbD4cy8

• Even when Carlo Ancelotti is forced into a substitution, he makes it look like a masterstroke. Simone Verdi exited Napoli’s game against Udinese in the fourth minute. His replacement, Fabián Ruiz scored in the 14th. Still, even Ruiz had nothing on Marko Rog, who found the net within 40 seconds of replacing Piotr Zielinski in the second half of a comfortable 3-0 win.

• Roma, by contrast, appear to exist in a permanent state of discomfort these days –shorn of the familiarity of Nainggolan and Kevin Strootman in midfield. They are the third-most prolific team in Serie A this season, but after a 2-0 defeat at home to Spal they have conceded 12 times in nine games.

• A word for Spal, because that was an extraordinary win. They arrived on the back of four defeats and played the final 15 minutes with 10 men after their keeper, Vanja Milinkovic-Savic, was sent off. Nobody might have enjoyed the day more than captain Francesco Vicari, who grew up in Rome and spent three years in the Giallorossi’s academy system, but was a Lazio fan.