he Serie A season ended on Sunday with a showdown between two European finalists. Atalanta’s game against Fiorentina had originally been scheduled for 17 March but was postponed after the Viola’s chief executive, Joe Barone, suffered a cardiac arrest at the team hotel. He was taken to hospital and placed on life support but died two days later.
His passing was felt deeply by a club who lost a captain, Davide Astori, under similar circumstances six years before. Yet the football calendar pressed on. Fiorentina reached the final of the Europa Conference League and the semi-final of the Coppa Italia. Atalanta won the Europa League, after losing to Juventus in the domestic cup final.
For Italian football, this felt like confirmation of a trend. There was a Serie A club in all three Uefa club finals last year, even if they did each wind up on the losing side. Even before Atalanta thumped Bayer Leverkusen in Dublin last month, ending the German club’s unbeaten campaign and claiming their first ever European trophy, they and Fiorentina had already helped to secure a fifth Italian spot in next season’s revamped Champions League.
The only downside to cup success was a punishing fixture list that left no space to make up a postponed game. The showdown between Italy’s European finalists had to be bumped all the way back until after the rest of Serie A had concluded.
Fortunately, there was not much riding on the match by the time it finally took place. Fiorentina won 3-2 and stayed eighth. Atalanta missed a chance to climb from fourth to third but who really cared about that, so soon after the greatest night in the club’s history?
Fiorentina’s Andrea Belotti found a neat way to bookend the season, scoring twice – just as he had on the opening weekend. A statistical curiosity: he bagged only two other goals, split between two different teams, in 27 Serie A appearances in between.
Every football season is the sum of countless personal dramas. Not even the most self-indulgent review could hope to recount them all. This year’s headlines include a catastrophic title defence from Napoli, who fell from first to 10th, but we could write whole chapters about the appointment of Rudi Garcia as manager – a decision that owner, Aurelio De Laurentiis, claimed to have started regretting during the introductory press conference – or the astonishingly ill-judged social media posts that alienated striker Victor Osimhen.
Inter rose to take their crown, playing some astonishingly good football. Despite another summer of high-profile departures – with André Onana, Edin Dzeko, Romelu Lukaku, Marcelo Brozovic and Robin Gosens all leaving – Simone Inzaghi took his team to new levels, developing tactics so fluid that we saw goals from open play in which one member of the back three crossed for another to finish.
They let themselves down in the Champions League, allowing a wobble to become a crisis as they fumbled a two-goal lead against Atlético Madrid. But they sealed their 20th Scudetto – and with it a second gold star for the club badge – in the most satisfying way imaginable, beating Milan, up to that moment tied with them on 19 title wins, at San Siro.
Juventus were the only team who threatened to challenge, somehow keeping pace with Inter through the first half of the campaign and occupying top spot for a moment at the start of 2024. But a defeat in February’s Derby d’Italia brought them crashing back to reality. A one-point gap between them and the Nerazzurri became 20 in the space of two months.
There is probably a whole book to be written about Massimiliano Allegri’s second tenure in Turin, a man brought back to restore the imagined “Juventus style” of elegant success, and who eventually was fired after getting halfway through a striptease while winning the Coppa Italia. His supporters will point out he kept Juventus competitive with a modest squad amid some major off-pitch dramas these last two years, from the resignation of the entire board and a points penalty last season to a seven-month ban for a starting midfielder this time around. Critics will counter that sitting down to watch his team play sometimes felt like signing up for a cruel form of boredom torture.
The football was not much more exciting during José Mourinho’s last, dark days at Roma, though the Portuguese could at least guarantee other forms of drama. By one journalist’s count, there were 29 red cards shown to members of his sideline staff over the course of his two and a half seasons in charge.
It might be fun to tell the story of Mourinho’s stay in the Italian capital purely by the numbers. You could highlight his 1.61 points a game with Roma in Serie A – the fewest of any manager who has stayed for 50 or more games in the era of three points for a win – and counter that with two European finals in as many completed campaigns. Or just remember the good times, like when he substituted Renato Sanches on against Bologna in December, then back off again 18 minutes later.
Love him or loathe him, he was always going to be a tough act to follow. Unless you are Daniele De Rossi, who Roma named as a caretaker in January and quickly upgraded to a full appointment on the back of a brilliant start. Results eventually cooled, but we will get a more complete picture of his work next season.
It is shaping up already as a fascinating one with so many clubs changing managers. A second-place finish was not enough for Stefano Pioli to keep his job at Milan, but his replacement Paulo Fonseca has divided opinion among supporters already.
Thiago Motta confirmed his status as one of Serie A’s most exciting young coaches by guiding Bologna into the Champions League – their first time in Europe’s top club competition for 60 years – and now has become Allegri’s successor at Juventus. Napoli hope to bounce back from their disappointing year with Antonio Conte at the helm. Lazio were making good progress under Igor Tudor but he resigned on Wednesday after less than three months in the job.
Fiorentina have appointed Raffaele Palladino, fresh from two impressive seasons at Monza, to replace Vincenzo Italiano, who will try to fill Motta’s shoes at Bologna. There are more vacancies to fill, and stories to tell, as we move down the table, but there will be time in the months ahead. For now, we need to get to the important business of handing out some awards.
Goal of the season
8 Marcus Thuram introduces himself in his first Milan derby.
7 The clean buildup, the backheel assist, the finish off the underside of the bar: Theo Hernández’s goal against Roma was like the football version of those TikTok influencer restocking videos in impossibly tidy houses.
6 Luis Muriel’s backheel winner against Milan gets more outrageous the more you look at it.
5 Marvin Çuni’s Zlatan Ibrahimović-esque spinning backheel volley against Empoli was made even better by the fact that it was set up by a player who shares the former Milan forward’s surname.
4 Overhead kick section. Deep breath now, we had a lot this season: Leonardo Pavoletti Cyril Ngonge, Rafael Leão , Mateo Retegui , Antonio Sanabria , Hasane Kamara, Dany Mota and Oussama El Azzouzi.
3 From a messy buildup, the cleanest of volleys by Matteo Politano. (And here, have another from Michael Folorunsho.)
2 Watching Charles De Ketelaere rediscover his confidence at Atalanta after his unhappy chapter at Milan was a joy. The nonchalance of his self-serve turn and volley against Genoa said it all.
1 Listen, I know not everyone believes Federico Dimarco meant to shoot from halfway against Frosinone. I don’t care, this goal is beautiful. (And if you really can’t enjoy it then here’s another Dimarco belter against Empoli. Don’t say I never spoil you.)
Goal of the season: Antonio Candreva edition
3) Roma.
2) Napoli.
1) Lazio.
Headed goal of the season
Assist of the season
Victor Osimhen took seven casual touches in the box before letting the ball hit the floor, then navigating between three defenders and crossing for Khvicha Kvaratskhelia to score against Cagliari.
Pass of the season
Hakan Calhanoglu bypassed the entire Juventus team to release Federico Dimarco during the Derby d’Italia.
Save of the season
Olivier Giroud was Milan’s top scorer with 15 goals, but also rose to the challenge of keeping the ball out at the other end after Mike Maignan was sent off during a chaotic finish to their match against Genoa in October, making a brave plunge to deny George Puscas in the 14th minute of injury time. Milan announced a day later that fans could print Giroud’s name and number onto the home goalkeeping shirt in their club shop, and within hours had sold out of every size.
OK fine, the real save of the season
You could probably make a worthy top 10 purely out of saves by Michele Di Gregorio – he made more of them than any other keeper in the division, and his denial of first a penalty and then the rebound by Dusan Vlahovic was special. For me, though, the athleticism of Stefano Turati’s stop against Luis Alberto was even more impressive.
Player of the season
It is easy to forget now that there were concerns for Inter’s attack at the start of this season, pundits raising questions about how Lautaro Martínez would fare without Dzeko or Lukaku occupying the traditional No 9 spaces upfront. The answer, it turns out, was ‘absolutely brilliantly’.
A player of undoubted talent, but whose best form has always been interrupted by painful cold streaks in past seasons at Inter, he started this campaign hot and never showed a hint of cooling off before March, when the title was already won. Lautaro found an instant understanding with Thuram, swapping spaces freely to torment defenders, and produced his most prolific Serie A season yet, scoring 24 times to finish eight ahead of Dusan Vlahovic as the league’s capocannoniere.
Team of the season (3-4-2-1)
Michele Di Gregorio (Monza); Alessandro Bastoni (Inter), Gleison Bremer (Juventus), Riccardo Calafiori (Bologna); Federico Dimarco (Inter), Teun Koopmeiners (Atalanta), Hakan Calhanoglu (Inter), Raoul Bellanova (Torino); Charles De Ketelaere (Atalanta), Marcus Thuram (Inter); Lautaro Martínez (Inter)
Manager of the season
There were strong candidates here throughout the division, from Inzaghi raising Inter’s level yet again all the way down to Marco Baroni, who guided Verona to a comfortable escape from relegation despite having what felt like almost his entire first-team squad sold from underneath him in January. Davide Nicola only had half a season at Empoli, but pulled off yet another Harry Houdini escape act. Claudio Ranieri was the comeback king again for Cagliari.
In the end, though, we have two standout contenders. No manager has done a more consistently brilliant job of developing a sustainable project in Serie A than Gian Piero Gasperini, whose Atalanta have been punching above their weight now for almost a decade, constantly reinventing themselves with new players and shifts of tactical emphasis. To crown that work at last with a trophy – and not just any trophy, but the club’s first European silverware – was simply extraordinary.
And then there is Motta, who made an unremarkable squad at Bologna into the fifth-best team in Italy. His coaching helped Lewis Ferguson to emerge as a line-breaking, all-action menace, Riccardo Calafiori to evolve from a raw full-back into a poised, adventurous centre-back, and the 27-year-old Riccardo Orsolini to play the best football of his career on the wing, winning a spot in the Italy squad.
So, Gasperini or Motta? I say: why choose? They share this season’s award.
Game of the season
After winning his first three games in charge of Roma, De Rossi suffered his first defeat at home to Inter. It did not feel like one. The Giallorossi were sensational throughout the first-half, taking the game to opponents who had lost only once all season and looked so untouchable while beating their last remaining title rivals, Juventus, the week before. As Stephan El Shaarawy’s shot kissed both posts and nestled in the net to give the hosts a 2-1 lead just before half-time, it felt like an upset was on the cards.
A torrential downpour at the Stadio Olimpico added to the drama. It was hard to tell what De Rossi was enjoying most as he roared with delight in a soaked-through suit jacket – the brilliant football his team was playing or the simple fact of being back home and back in the thick of things. In any case, it was cinema: a Roma team playing with the courage and energy of their manager: a far cry from the grim and grudging final chapter of Mourinho’s tenure.
Inter turned things around after the break, eventually winning the game 4-2, but that scoreline felt misleading. Inter’s final goal came deep into injury time, Alessandro Bastoni striking on the counter after Roma overcommitted. If Lukaku had held his nerve when sent through one-on-one with Yann Sommer in the 70th minute, the ending could have been very different.
Honourable mention: Cagliari’s 4-3 win at home to Frosinone was not the highest technical standard of football we saw all season, but it was some spectacle. For more than an hour, Matías Soulé was the star, the 21-year-old Juventus loanee dazzling with his dribbling as he put Frosinone 2-0 ahead while Cagliari kept hitting the woodwork. Marco Brescianini added a third goal just after the interval and that seemed to be that.
But in the 72nd minute, Gaetano Oristanio pulled a goal back with a lovely curling finish, then Antoine Makoumbou punished a defensive lapse to make it 3-2. Cagliari had a penalty award taken away from them by a VAR review, but completed the turnaround anyway with a pair of goals in injury-time from the 34-year-old Leonardo Pavoletti – the same player who had earned their promotion from Serie B with a last-gasp winner in the playoff final against Bari.
It was the first time any Serie A club had ever recovered from three goals down after the 70th minute to win. More than that, it was the story of Ranieri’s Cagliari distilled: countless smaller comebacks adding up to a greater one. He offered to resign four months later, with his team 19th, but players talked him out of it, Pavoletti reportedly telling him to keep faith in the work they were doing. Cagliari lost only three of the next 13 games and secured top-flight survival with a game to spare.
Football’s random numbers generator
0 Points claimed, and goals scored by Empoli in their first five games: the worst start by any team in Serie A history. Nevertheless, they avoided relegation by a single point, thanks to a 92nd minute goal against Roma on the final weekend.
112 Consecutive games of Allegri always changing his starting XI for Juventus, before finally breaking that sequence against Sassuolo in September.
2 Defeats suffered by Inter on the way to their title.
1 Number of teams responsible for inflicting those defeats. Sassuolo beat Inter twice, but only won five other games all season on their way to relegation.
Worst homecoming
A childhood Napoli fan, born in Naples, Pasquale Mazzocchi moved away to pursue his professional football dreams at just 11 years old and played for seven different clubs before finally getting his chance this January to come back and play for the Partenopei at the age of 27. Some fans harboured resentment toward him for helping Salernitana to draw 1-1 at the Stadio Diego Maradona last spring, denying Napoli the chance to seal their Scudetto win in front of their own supporters. Sent on at last to make his debut for his home town club against Torino, Mazzocchi lasted all of four minutes before being sent off for a studs-up challenge.
Most optimistic
Pioli, defending Milan’s perfomance after a 5-1 shellacking in this season’s first Derby della Madonnina last September: “In the first four minutes, only we touched the ball.” (Henrikh Mkhitaryan opened the scoring for Inter in the fifth.)
Best multi-purpose fashion
When Matteo Guendouzi got up in Paulo Dybala’s face during this season’s second Rome Derby, the Argentinian knew how to respond. He reached into his sock and whipped out a shinpad with a picture of himself kissing the World Cup on it. Guendouzi had been on the bench for France’s defeat in the 2022 final.
Worst place to sit
Vincenzo Italiano’s seat.
More Stories
Liverpool’s contract dance with Salah was always going to be complicated
Wan-Bissaka wraps up West Ham win at Newcastle to ease Lopetegui pressure
Pep Guardiola says he must ‘find a way’ to make Manchester City win again