The verdict
This was not a football match so much as a slow-burning stress test, and Arsenal passed it — just. Trossard’s 83rd-minute goal, assisted by Odegaard, broke a suffocating deadlock that West Ham’s compact 3-4-2-1 had manufactured with considerable discipline. It came moments after David Raya had produced the save of the game, denying Mateus Fernandes in a one-on-one that would have flipped the narrative entirely.
The denouement was almost impossible. Mads Hermansen steaming forward for a 95th-minute corner, Wilson lashing it over the line, delirium in the stands — only for VAR to rule that substitute Pablo had fouled Raya. Chris Kavanagh took an age at the monitor and, in that pause, the Premier League title genuinely hung in the air. He got it right. West Ham, staring at relegation, were left with nothing.
Arsenal’s xG edge (1.52 to 1.32) flatters to deceive — West Ham’s open-play xG was 1.30 to Arsenal’s 0.49, the visitors leaning almost entirely on set-piece threat. Arteta’s side won ugly, but in a title race, ugly counts.
Goals
- 83’ — L. Trossard (Arsenal), assist M. Odegaard
The numbers
| Metric | West Ham | Arsenal |
|---|---|---|
| Goals | 0 | 1 |
| Expected goals | 1.32 | 1.52 |
| Big chances | 2 | 1 |
| xPoints | 1.24 | 1.49 |
| Total shots | 9 | 15 |
| Possession % | 36 | 64 |
| Passes | 281 | 503 |
| Corners | 4 | 3 |
The tactical battle
Nuno’s switch to a three-centre-back system stifled Arsenal’s open-play creativity almost completely, holding them to just 0.49 open-play xG and forcing all of Arteta’s attacking threat through set-pieces. Arsenal’s 1.03 set-piece xG proved the decisive weapon in a game West Ham controlled territorially for long stretches.
Man of the match
David Raya earned it — a 0.98 keeper performance rating, a crucial one-on-one stop against Fernandes at 0-0, and the composure to win the foul that cancelled West Ham’s equaliser in the 95th minute.
Top performances (by xG involvement)
| Player | Team | Shots | xG | Goals | Big chances |
|---|---|---|---|---|---|
| Leandro Trossard | Arsenal | 3 | 0.67 | 1 | 1 |
| Mateus Fernandes | West Ham | 2 | 0.61 | 0 | 1 |
| Valentín Castellanos | West Ham | 2 | 0.46 | 0 | 1 |
| Riccardo Calafiori | Arsenal | 3 | 0.4 | 0 | 0 |
| Gabriel | Arsenal | 2 | 0.23 | 0 | 0 |
| Viktor Gyokeres | Arsenal | 2 | 0.09 | 0 | 0 |
Three things that stood out
- West Ham generated 1.30 xG from open play vs Arsenal’s 0.49 — yet Arsenal won through a set-piece-heavy 1.03 xG route.
- Mateus Fernandes had the game’s biggest chance (xG 0.59, minute 77) and was denied by Raya before Arsenal scored at the other end just six minutes later.
- West Ham’s xPoints (1.24) were almost level with Arsenal’s (1.49) — a VAR call on a 95th-minute corner decided the table, not the run of play.
What happens next
Arsenal, with only Burnley at home and Crystal Palace away remaining, are now overwhelming favourites for a first title since 2004 — while West Ham drop deeper into a relegation battle with Tottenham that hinges on Monday night.
Cards & substitutions
- 34’ Yellow Card — Valentín Castellanos (West Ham)
- 38’ Yellow Card — Crysencio Summerville (West Ham)
- 68’ Yellow Card — Jean-Clair Todibo (West Ham)
- 77’ Yellow Card — Bukayo Saka (Arsenal)
- 79’ Yellow Card — Cristhian Mosquera (Arsenal)
- 89’ Yellow Card — William Saliba (Arsenal)
- 90+1’ Yellow Card — Leandro Trossard (Arsenal)
- 28’ Substitution — B. White (Arsenal)
- 46’ Substitution — R. Calafiori (Arsenal)
- 66’ Substitution — T. Castellanos (West Ham)
- 67’ Substitution — E. Eze (Arsenal)
- 80’ Substitution — B. Saka (Arsenal)
- 85’ Substitution — A. Disasi (West Ham)
Match xG: West Ham 1.32 — 1.52 Arsenal. Result archetype: tactical-chess. xPoints: 1.24 vs 1.49.