Udinese edged AS Roma 1–0 at the Bluenergy Stadium – Stadio Friuli on Monday night, grinding out a statement win that tightens the Serie A mid-table pack and checks Roma’s push for Europe. In a tense contest overseen by referee Juan Luca Sacchi, Jürgen Ekkelenkamp’s strike early in the second half proved decisive, lifting Kosta Runjaic’s side to 32 points after 23 rounds and consolidating ninth place. Roma, who arrived in Udine sitting fifth with Europa League ambitions, controlled most of the ball but left frustrated and scoreless.
First Half Analysis
The opening 45 minutes in Udine were defined more by discipline and duels than by clear attacking incision. The tone was set as early as 7', when Evan Ndicka went into the book for a handball, an early warning for Roma’s back line. Udinese’s physical approach in attack was reflected in Keinan Davis’ yellow card for argument at 17', a sign of the intensity of the battles up front.
Thomas Kristensen followed into the referee’s notebook at 34' for a foul, underlining how much defensive work Runjaic’s three-man back line had to do against Roma’s fluid front three of Donyell Malen, Lorenzo Pellegrini and Matías Soulé. Despite Roma’s technical quality and territorial edge, the first half ended goalless, with neither side able to convert possession or pressure into a breakthrough. Udinese were content to stay compact in their 3-4-2-1, looking to spring from deep, while Roma probed but without the final pass.
Second Half & Tactical Shifts
The match finally opened up straight after the restart. Three minutes into the second half, Gianluca Mancini was cautioned at 48' for a foul, and Roma’s brief loss of composure was punished almost instantly. At 49', J. Ekkelenkamp struck what would become the winning goal, finishing a move that gave Udinese the 1–0 lead and electrified the home side’s belief.
Runjaic’s first adjustment came at 56', withdrawing the booked and hard-working Keinan Davis for Idrissa Gueye. The like-for-like swap in the forward line suggested fresh legs to press Roma’s buildup and threaten on the counter. Roma’s frustrations grew when Neil El Aynaoui saw yellow for a foul at 59', as their attempts to chase the game became increasingly scrappy.
Udinese’s aggression also carried risk. Jordan Zemura was booked at 62' for a foul, followed by Roma captain Pellegrini at 67', whose caution preceded his substitution in the same minute. Coach Piero Gasperini Gian removed Pellegrini and introduced Lorenzo Venturino, an attacking reshuffle aimed at injecting energy and directness into the final third.
The game’s rhythm became increasingly fragmented. Lennon Miller was booked at 69', and substitute Idrissa Gueye followed with another yellow at 70', a reflection of Udinese’s all-in defensive commitment. Roma responded with defensive and midfield tweaks: Mario Hermoso made way for Daniele Ghilardi at 70', while El Aynaoui was replaced by Niccolò Pisilli at 78', and Matías Soulé by Robinio Vaz in the same minute. Gasperini Gian was clearly searching for a different attacking balance, adding fresh legs in wide and central areas.
Runjaic countered by reinforcing his own structure. At 79', Nicolò Bertola was replaced by Christian Kabasele in defence, and Miller made way for Oier Zarraga in midfield, moves that pointed towards shoring up the back three and adding composure in possession. Roma’s final roll of the dice came as Zeki Çelik was withdrawn for Konstantinos Tsimikas at 79', a change on the flank to push higher and deliver from wide areas.
Deep in stoppage time, Udinese used their remaining changes to manage the clock and energy. At 90+1', goalscorer Ekkelenkamp was replaced by Nicolò Zaniolo, adding a fresh outlet between the lines. Then, at 90+2', Vakoun Bayo entered in a late substitution where the outgoing player was not specified, but the intent was clear: more running and pressing in the dying moments to close out a precious clean sheet.
Statistical Deep Dive
Roma controlled 64% of the ball, leaving Udinese with just 36% possession, and their 506 total passes at 87% accuracy dwarfed Udinese’s 291 at 77%. Yet that territorial control did not translate into a clear attacking superiority. Roma mustered 10 total shots to Udinese’s 7, but only edged shots on target 3–4, a sign that the hosts were more clinical when they did venture forward.
Expected goals underlined the balance: Roma’s xG of 0.73 was only marginally higher than Udinese’s 0.69, suggesting a game of half-chances rather than constant siege. Both goalkeepers made three saves, and Roma’s five blocked shots to Udinese’s one showed how often the Giallorossi were forced to shoot through traffic. Udinese’s willingness to shoot from distance (six of their seven attempts from outside the box) contrasted with Roma’s focus inside the area (seven of ten), but neither side carved out truly high-quality openings.
Discipline was a major storyline. Udinese committed 18 fouls to Roma’s 17 and collected five yellow cards versus Roma’s four, reflecting a combative, stop-start contest. The fouls and cautions, particularly in the second half, repeatedly disrupted Roma’s rhythm and suited Udinese’s game plan of protecting their lead.
Standings & Implications
The victory lifts Udinese to 32 points with a goal difference of -8 (26 scored, 34 conceded) after 23 matches, keeping them ninth in Serie A but strengthening their position in the crowded mid-table and extending an impressive recent run (now reading WWLDW). At home, they now have four wins, four draws and four defeats, slowly turning the Bluenergy Stadium into a more reliable base.
For Roma, the defeat leaves them on 43 points, still fifth with a +13 goal difference (27 for, 14 against) but missing an opportunity to tighten their grip on the Europa League places. Their away record remains strong overall (seven wins and five losses), yet this setback underlines how slim the margins are in the race for Europe, especially when dominance of the ball does not bring goals.





