Sassuolo and AC Milan shared the points at Mapei Stadium in a tight Serie A contest that swung on set pieces and fine margins. After a controlled first half that finished goalless, Adrien Rabiot put Milan in front, only for Cas Odenthal to level from a corner five minutes later. The draw feels fair on the numbers, even if both sides will think they left a little out there. Match page with full data and player metrics is available on Sofascore, while you can follow standings and fixtures on the Serie A hub.
Milan started brighter and owned more of the ball, but Sassuolo’s 4-3-3 kept the visitors’ 4-4-2 out of the box for long spells. Early disruption hit both benches, as Matteo Gabbia exited injured on 20 minutes and Fedde Leysen followed for Sassuolo at 26 minutes. The first half ended 0-0 with Milan ahead on shots 8-4 and xG 0.90 to 0.09, but Arijanet Murić’s four saves ensured parity. Pervis Estupiñán saw yellow on 41 minutes, then Rúben Amorim turned to Luka Modrić at the break to tilt the midfield.
The change paid off quickly. On 63 minutes Modrić fed Rabiot, who finished left-footed into the high-left with an xG of 0.05, breaking the deadlock. Sassuolo answered on 68 minutes from a corner, where Odenthal reacted first and guided a left-foot effort low through traffic for 1-1 with a 0.18 xG chance. Late on, both managers rolled the dice, but the final pass kept missing, and the cards piled up for Milan, who finished with four yellows to Sassuolo’s one. The clock ticked out with few clear looks and a point apiece.
What the numbers say
Milan edged possession 59 to 41 percent and completed more passes, 627 to 442, but productivity was nearly level. Total shots finished 11-11 and the expected goals model settled at 1.20 for Sassuolo and 1.17 for Milan. Accuracy tilted slightly to the visitors with 6 shots on target to 4 and a higher expected goals on target, 1.45 to 1.07. Yet Sassuolo produced the only “big chance scored” tally on the afternoon while Milan registered three big chances missed.
Final third traffic was almost identical, with entries 47 to 46 in Milan’s favor. The Rossoneri delivered more crosses, completing 10 of 22, while Sassuolo hit 4 of 10, an edge that helped create Rabiot’s goal phase before a set piece restored level terms. Long balls were efficient both ways, at 60 percent for Sassuolo and 58 percent for Milan, and the hosts won more duels at 52 percent. In truth, the match was shaped by details at both ends: Milan’s volume and wide service versus Sassuolo’s set-piece punch and duel-winning grit.
Defensive grit and goalkeeping
This draw also belongs to the defenders and keepers. Sassuolo posted 25 clearances to Milan’s 13 and out-tackled the visitors 22 to 16, winning 64 percent of their tackles. Interceptions finished 9-8 in the hosts’ favor and ball recoveries 55-49, pointing to a compact block that read danger well. Ground duels leaned Sassuolo’s way in the first half and Milan’s in the second, but overall the hosts owned a slim edge.
Murić delivered a strong shift with 5 saves, 2 high claims and an estimated 0.45 goals prevented. He also swept well outside his box twice and completed 19 of 23 passes to steady build-up. Mike Maignan was tidy too, producing 3 saves and preventing 0.07 goals on a day when much of his work involved distribution and positioning. When Milan pressed, Sassuolo cleared; when Sassuolo broke, Maignan’s angles held. It was that kind of defensive arm wrestle.
Patterns of play and key performers
Milan’s right and left channels were productive. Diego Moreira earned a strong Sofascore Rating of 7.7 with 5 accurate crosses from 6 attempts, 2 key passes and 0.43 expected assists, repeatedly dragging defenders out of shape. Christian Pulišić added 0.56 expected assists and a key pass before making way late on, while Samuel Chukwueze created a big chance but also missed one. In midfield, Rabiot balanced control and timing, completing 50 of 59 passes with 4 accurate crosses and popping up for the opener.
For Sassuolo, the wide duo was busy. Armand Laurienté generated 0.44 expected assists, a big chance created and 32 of 38 passes completed, constantly carrying the ball into useful areas. Captain Domenico Berardi chipped in 2 key passes and 0.27 expected assists while leading the press and recovering 13 balls. Off the bench, Koni De Winter was spotless passing for Milan at 72 of 73, and for the hosts, Kristian Thorstvedt threatened with 0.63 expected goals and 2 shots on target, even if the final touch deserted him. It all added up to momentum in pockets rather than long waves.
MVP: Cas Odenthal
Handed an early call on 26 minutes, Cas Odenthal seized his chance and then some. The Sassuolo defender scored the equalizer, timed his movements on set pieces, and anchored a back line that lived by clear, decisive actions. His Sofascore Rating of 7.9 was the highest on the pitch, reflecting impact at both ends. He completed 26 of 30 passes and contributed 9 clearances, exactly the profile you need against a crossing-heavy opponent.
Odenthal also produced the only shot he took, which found the net from a 0.18 xG chance during a corner situation. He won key duels, positioned well to cut off dangerous second balls, and helped Sassuolo survive late pressure. Add in a foul drawn and a clean distribution map under stress, and the picture is of a defender who does simple things at the right time. On a day decided by margins, his goal and backline management were exactly what earned Sassuolo their point.
Player of the Match
By Sofascore Rating, Cas Odenthal led this game with a 7.9. The fans on Sofascore picked Adrien Rabiot instead, giving him 1015 of 1959 total votes. Different choices, same outcome: both were decisive for their teams.
Sassuolo and AC Milan shared the points at Mapei Stadium in a tight Serie A contest that swung on set pieces and fine margins. After a controlled first half that finished goalless, Adrien Rabiot put Milan in front, only for Cas Odenthal to level from a corner five minutes later. The draw feels fair on the numbers, even if both sides will think they left a little out there. Match page with full data and player metrics is available on Sofascore, while you can follow standings and fixtures on the Serie A hub.
How the 1-1 unfolded
Milan started brighter and owned more of the ball, but Sassuolo’s 4-3-3 kept the visitors’ 4-4-2 out of the box for long spells. Early disruption hit both benches, as Matteo Gabbia exited injured on 20 minutes and Fedde Leysen followed for Sassuolo at 26 minutes. The first half ended 0-0 with Milan ahead on shots 8-4 and xG 0.90 to 0.09, but Arijanet Murić’s four saves ensured parity. Pervis Estupiñán saw yellow on 41 minutes, then Rúben Amorim turned to Luka Modrić at the break to tilt the midfield.
The change paid off quickly. On 63 minutes Modrić fed Rabiot, who finished left-footed into the high-left with an xG of 0.05, breaking the deadlock. Sassuolo answered on 68 minutes from a corner, where Odenthal reacted first and guided a left-foot effort low through traffic for 1-1 with a 0.18 xG chance. Late on, both managers rolled the dice, but the final pass kept missing, and the cards piled up for Milan, who finished with four yellows to Sassuolo’s one. The clock ticked out with few clear looks and a point apiece.
What the numbers say
Milan edged possession 59 to 41 percent and completed more passes, 627 to 442, but productivity was nearly level. Total shots finished 11-11 and the expected goals model settled at 1.20 for Sassuolo and 1.17 for Milan. Accuracy tilted slightly to the visitors with 6 shots on target to 4 and a higher expected goals on target, 1.45 to 1.07. Yet Sassuolo produced the only “big chance scored” tally on the afternoon while Milan registered three big chances missed.
Final third traffic was almost identical, with entries 47 to 46 in Milan’s favor. The Rossoneri delivered more crosses, completing 10 of 22, while Sassuolo hit 4 of 10, an edge that helped create Rabiot’s goal phase before a set piece restored level terms. Long balls were efficient both ways, at 60 percent for Sassuolo and 58 percent for Milan, and the hosts won more duels at 52 percent. In truth, the match was shaped by details at both ends: Milan’s volume and wide service versus Sassuolo’s set-piece punch and duel-winning grit.
Defensive grit and goalkeeping
This draw also belongs to the defenders and keepers. Sassuolo posted 25 clearances to Milan’s 13 and out-tackled the visitors 22 to 16, winning 64 percent of their tackles. Interceptions finished 9-8 in the hosts’ favor and ball recoveries 55-49, pointing to a compact block that read danger well. Ground duels leaned Sassuolo’s way in the first half and Milan’s in the second, but overall the hosts owned a slim edge.
Murić delivered a strong shift with 5 saves, 2 high claims and an estimated 0.45 goals prevented. He also swept well outside his box twice and completed 19 of 23 passes to steady build-up. Mike Maignan was tidy too, producing 3 saves and preventing 0.07 goals on a day when much of his work involved distribution and positioning. When Milan pressed, Sassuolo cleared; when Sassuolo broke, Maignan’s angles held. It was that kind of defensive arm wrestle.
Patterns of play and key performers
Milan’s right and left channels were productive. Diego Moreira earned a strong Sofascore Rating of 7.7 with 5 accurate crosses from 6 attempts, 2 key passes and 0.43 expected assists, repeatedly dragging defenders out of shape. Christian Pulišić added 0.56 expected assists and a key pass before making way late on, while Samuel Chukwueze created a big chance but also missed one. In midfield, Rabiot balanced control and timing, completing 50 of 59 passes with 4 accurate crosses and popping up for the opener.
For Sassuolo, the wide duo was busy. Armand Laurienté generated 0.44 expected assists, a big chance created and 32 of 38 passes completed, constantly carrying the ball into useful areas. Captain Domenico Berardi chipped in 2 key passes and 0.27 expected assists while leading the press and recovering 13 balls. Off the bench, Koni De Winter was spotless passing for Milan at 72 of 73, and for the hosts, Kristian Thorstvedt threatened with 0.63 expected goals and 2 shots on target, even if the final touch deserted him. It all added up to momentum in pockets rather than long waves.
MVP: Cas Odenthal
Handed an early call on 26 minutes, Cas Odenthal seized his chance and then some. The Sassuolo defender scored the equalizer, timed his movements on set pieces, and anchored a back line that lived by clear, decisive actions. His Sofascore Rating of 7.9 was the highest on the pitch, reflecting impact at both ends. He completed 26 of 30 passes and contributed 9 clearances, exactly the profile you need against a crossing-heavy opponent.
Odenthal also produced the only shot he took, which found the net from a 0.18 xG chance during a corner situation. He won key duels, positioned well to cut off dangerous second balls, and helped Sassuolo survive late pressure. Add in a foul drawn and a clean distribution map under stress, and the picture is of a defender who does simple things at the right time. On a day decided by margins, his goal and backline management were exactly what earned Sassuolo their point.
Player of the Match
By Sofascore Rating, Cas Odenthal led this game with a 7.9. The fans on Sofascore picked Adrien Rabiot instead, giving him 1015 of 1959 total votes. Different choices, same outcome: both were decisive for their teams.