Serie A Matchday 38 review: Bologna and Inter share six, Cagliari shock Milan
Round in numbers
Serie A's Matchday 38 closed with all ten games played, twenty-eight goals across the round, and finishing that landed close to the chance map. Combined xG totalled 29.58 — actual scoring undershot expectation by about a goal and a half, which is essentially noise rather than a finishing trend.
Both Teams to Score landed in six of ten matches, while Over 2.5 split the round evenly, five to five. Four clean sheets is a moderate count for a final matchday with mixed motivations. The biggest xG overperformance was Bologna's 3-3 with Inter: 2.77 combined xG produced six goals, a +3.23 finishing swing that was the round's most chaotic open game. At the other end, Roma turned 3.36 xG into just two goals in their 2-0 at Hellas Verona — the biggest underperformance, but in a fixture they comfortably won regardless.
Results
Fiorentina 1-1 Atalanta was a results-over-expected-goals night for the hosts. Atalanta held 60% possession, generated 1.58 xG to 0.81, and put six shots on target to four — but the home side went in 1-0 up at half-time and held on for a point. The chance map suggested Atalanta deserved the win; the scoreboard did not agree.
Bologna 3-3 Inter was the round's most open game. Both teams broke through repeatedly: Bologna 2-1 up at the interval before a back-and-forth second half. Inter edged xG 1.59 to 1.18 and shots on target 5 to 3, but the finishing was wild on both sides — six goals from a combined 2.77 xG. Inter took 55% of the ball; the outcome did not reflect that comfortably.
Lazio 2-1 Pisa was the round's strangest shot map. Lazio fired nine shots on target to Pisa's two and still finished on a lower xG (1.01 to 1.55). The hosts led 2-1 at the break and held on for the win — a result that hinged on Lazio converting low-quality openings while Pisa created the kind of chances they did not finish.
Parma 1-0 Sassuolo was the round's quietest fixture. Goalless at half-time, 1.22 to 0.92 xG, and a single goal in the second half decided it. Three shots on target apiece — broadly: the home team converted, the away team did not.
Napoli 1-0 Udinese was a controlled, low-noise home win. 67% possession, 1.81 to 0.44 xG, 1-0 at the break, 1-0 at full time. Six shots on target to three and the result never really looked in doubt after the opening goal.
AC Milan 1-2 Cagliari was the round's standout upset. The visitors were outshot on the ball — possession went 52-48 to Cagliari, not far apart — but the shots-on-target column told the real story: ten Cagliari shots on target to Milan's three, on a 2.78 to 1.74 xG line. The match was 1-1 at the break before Cagliari pulled away. On every quality metric available this was not a smash-and-grab; the away side deserved the three points.
Torino 2-2 Juventus played out as a comeback draw. Juventus led 0-1 at half-time and were dominating the chance map (2.03 to 0.85 xG) with 57% possession — but Torino kept getting bodies in good areas and came back to 2-2. Five Torino shots on target to four; the scoreline flatters the visitors slightly on xG, flatters the hosts slightly on possession, and lands roughly where the moments-on-target balance suggested.
Hellas Verona 0-2 Roma was Roma's xG masterclass in volume. 3.36 xG to 0.77 for the hosts, 67% possession, seven shots on target to three — and the goalless first half meant Verona's resistance held for forty-five minutes before the visitors broke through twice. Roma generated more than enough to win 3-0 or 4-0; the chance-to-goal conversion was the only thing that kept the scoreline modest.
Cremonese 1-4 Como was the round's most lopsided away win. Como took 70% of the ball, generated 2.35 xG to 1.06, and put six shots on target to one. The visitors led 0-1 at half-time before pulling away in the second half — a chance-quality, shot-volume, and possession sweep that ended in a four-goal margin.
Lecce 1-0 Genoa was the round's other "few touches, big result" home win. Lecce had only 32% of the ball but generated 1.76 xG to 0.77, four shots on target to one, and led 1-0 at the break before holding on. Genoa's six corners to one and majority possession produced almost nothing in front of goal.
Standout performers
Five names from the round, ranked by the goals + 0.5 × assists composite.
Dušan Vlahović opens the list with a brace for Juventus in the 2-2 at Torino — two goals from a single fixture, composite 2.0, the only Juve player to multi-score the round. Lucas Da Cunha matched the brace total with two goals for Como in their 4-1 win at Cremonese, also a composite 2.0. Jonathan Rodríguez added a goal and an assist in the same fixture for Como, composite 1.5 — meaning the visiting attack accounted for three of the four goals on its own and three of the five top-performer composite points in the round. Donyell Malen and Stephan El Shaarawy rounded out the list with one goal each for Roma in their 2-0 at Hellas Verona, both finishing on a 1.0 composite.
Looking ahead
The data closes Matchday 38 — the regular-season calendar is exhausted, and no postponed games are pending. The focus turns to the summer: European qualification confirmations, the relegation table's bottom three, and the early lines that will set the model's first calls of the new campaign. Round previews and reviews resume when next season's fixtures and pre-kickoff odds go live.