{
  "meta": {
    "asOf": "2026-09-17",
    "subject": "Erling Haaland vs Kylian Mbappé — every match in which they were on opposing sides",
    "notes": "Compiled 2026-09-17 from Wikipedia, UEFA.com, ESPN, Sky Sports, Al Jazeera, CBS, FIFA.com and club sites (see sources-head-to-head.md). 'matches' contains only fixtures where BOTH players actually took the field. 'otherTeamMeetings' lists fixtures between their teams where one of the two did not play (unused sub, injured, or not in squad) — these are excluded from 'summary'. Minutes marked in the note as 'not independently confirmed' come from lineup/report sources that list the player as a starter with no substitution recorded. No Norway–France senior meeting took place between Haaland's 2019 debut and the 2026 World Cup (last previous meeting: friendly 27 May 2014). Man City and Real Madrid did not meet at the 2025 FIFA Club World Cup (City were eliminated by Al Hilal in the round of 16). Man City and Real Madrid were NOT drawn together in the 2026-27 UCL league phase (draw 27 Aug 2026), so no 2026-27 meeting exists as of today.",
    "counting": {
      "matches": "both players appeared",
      "otherTeamMeetings": "team fixture between Haaland's and Mbappé's sides where one of them did not appear"
    }
  },
  "summary": {
    "matches": 4,
    "haalandTeamWins": 1,
    "mbappeTeamWins": 3,
    "draws": 0,
    "haalandGoals": 5,
    "mbappeGoals": 1,
    "haalandAssists": 0,
    "mbappeAssists": 1
  },
  "teamMeetingsSummary": {
    "description": "All 8 fixtures between their teams (matches + otherTeamMeetings), player stats counted only when the player appeared",
    "fixtures": 8,
    "haalandTeamWins": 2,
    "mbappeTeamWins": 6,
    "draws": 0,
    "haalandGoals": 6,
    "mbappeGoals": 4,
    "haalandAssists": 0,
    "mbappeAssists": 3
  },
  "matches": [
    {
      "date": "2020-02-18",
      "competition": "UEFA Champions League 2019-20",
      "stage": "Round of 16, first leg",
      "homeTeam": "Borussia Dortmund",
      "awayTeam": "Paris Saint-Germain",
      "score": "2-1",
      "aggregate": null,
      "venue": "Signal Iduna Park (Westfalenstadion), Dortmund",
      "attendance": 66099,
      "haaland": {
        "team": "Borussia Dortmund",
        "played": true,
        "started": true,
        "minutes": 90,
        "goals": 2,
        "assists": 0,
        "note": "Goals 69' (close range after goalmouth scramble) and 77' (long-range strike, assist Giovanni Reyna). Took his UCL tally to 10 goals, second-youngest to reach the mark after Mbappé."
      },
      "mbappe": {
        "team": "Paris Saint-Germain",
        "played": true,
        "started": true,
        "minutes": 90,
        "goals": 0,
        "assists": 1,
        "note": "Assisted Neymar's 75' equaliser after driving through the Dortmund defence."
      },
      "winnerPlayer": "haaland",
      "summary": "Haaland struck twice in eight second-half minutes either side of a Neymar goal set up by Mbappé, giving Dortmund a 2-1 first-leg lead. The 19-year-old Norwegian's second, a rocket from outside the box, became one of the goals of the season.",
      "sources": [
        "https://en.wikipedia.org/wiki/2019%E2%80%9320_UEFA_Champions_League_knockout_phase",
        "https://www.skysports.com/football/borussia-dortmund-vs-paris-saint-germain/teams/421719",
        "https://www.skysports.com/football/news/11945/11937298/borussia-dortmund-2-1-psg-erling-haalands-double-gives-dortmund-edge",
        "https://www.espn.com/soccer/match/_/gameId/560966/paris-saint-germain-borussia-dortmund",
        "https://bleacherreport.com/articles/2876922-erling-haalands-brace-guides-dortmund-past-neymar-psg-2-1-in-ucl-thriller"
      ]
    },
    {
      "date": "2020-03-11",
      "competition": "UEFA Champions League 2019-20",
      "stage": "Round of 16, second leg",
      "homeTeam": "Paris Saint-Germain",
      "awayTeam": "Borussia Dortmund",
      "score": "2-0",
      "aggregate": "PSG won 3-2 on aggregate",
      "venue": "Parc des Princes, Paris (behind closed doors, COVID-19)",
      "attendance": 0,
      "haaland": {
        "team": "Borussia Dortmund",
        "played": true,
        "started": true,
        "minutes": 90,
        "goals": 0,
        "assists": 0,
        "note": "Started and played the full match; well contained by Marquinhos and Kimpembe. PSG players mocked his meditation celebration afterwards."
      },
      "mbappe": {
        "team": "Paris Saint-Germain",
        "played": true,
        "started": false,
        "minutes": 27,
        "goals": 0,
        "assists": 0,
        "note": "Only fit for the bench after illness (sore throat; negative COVID test). Came on for Pablo Sarabia — Sky Sports gives 63', CulturePSG gives 64'."
      },
      "winnerPlayer": "mbappe",
      "summary": "In an empty Parc des Princes, first-half goals from Neymar (28') and Juan Bernat (45+1') overturned the tie for PSG. Haaland was kept quiet and Mbappé, recovering from illness, came off the bench in the second half as PSG advanced 3-2 on aggregate.",
      "sources": [
        "https://en.wikipedia.org/wiki/2019%E2%80%9320_UEFA_Champions_League_knockout_phase",
        "https://www.skysports.com/football/news/11095/11955534/psg-2-0-borussia-dortmund-agg-3-2-neymar-and-juan-bernat-on-target-as-hosts-overcome-first-leg-deficit",
        "https://www.culturepsg.com/news/match/psg-borussia-dortmund-ligue-des-champions-2019-2020-8e-finale-retour-live-resume-buts-video/31398",
        "https://www.espn.com/soccer/match/_/gameId/560956/borussia-dortmund-paris-saint-germain",
        "https://www.france24.com/en/20200312-psg-sink-dortmund-in-empty-stadium-to-reach-quarters-champions-league"
      ]
    },
    {
      "date": "2025-02-11",
      "competition": "UEFA Champions League 2024-25",
      "stage": "Knockout phase play-off, first leg",
      "homeTeam": "Manchester City",
      "awayTeam": "Real Madrid",
      "score": "2-3",
      "aggregate": null,
      "venue": "Etihad Stadium (City of Manchester Stadium), Manchester",
      "attendance": 52081,
      "haaland": {
        "team": "Manchester City",
        "played": true,
        "started": true,
        "minutes": 90,
        "goals": 2,
        "assists": 0,
        "note": "19' volley (assist Jack Grealish / Gvardiol chest-down) — his first career goal against Real Madrid — and 80' penalty. Listed as a starter with no substitution recorded in the sources consulted; 90 minutes not independently confirmed."
      },
      "mbappe": {
        "team": "Real Madrid",
        "played": true,
        "started": true,
        "minutes": 90,
        "goals": 1,
        "assists": 0,
        "note": "60' equaliser, a mis-hit volley off his shin from a free-kick rebound that looped over Ederson. Listed as a starter with no substitution recorded in the sources consulted; 90 minutes not independently confirmed."
      },
      "winnerPlayer": "mbappe",
      "summary": "Haaland twice put City ahead, but Mbappé's scrappy 60' equaliser, Brahim Díaz's 86' strike and Jude Bellingham's 90+2' winner gave Real Madrid a 3-2 comeback win at the Etihad. Referee: Clément Turpin.",
      "sources": [
        "https://en.wikipedia.org/wiki/2024%E2%80%9325_UEFA_Champions_League_knockout_phase",
        "https://www.skysports.com/football/news/11945/13306591/bellingham-seals-dramatic-comeback-as-real-madrid-win-at-man-city",
        "https://www.espn.com/soccer/report/_/gameId/732187",
        "https://www.espn.com/soccer/match/_/gameId/732187/real-madrid-manchester-city"
      ]
    },
    {
      "date": "2026-03-17",
      "competition": "UEFA Champions League 2025-26",
      "stage": "Round of 16, second leg",
      "homeTeam": "Manchester City",
      "awayTeam": "Real Madrid",
      "score": "1-2",
      "aggregate": "Real Madrid won 5-1 on aggregate",
      "venue": "Etihad Stadium, Manchester",
      "attendance": null,
      "haaland": {
        "team": "Manchester City",
        "played": true,
        "started": true,
        "minutes": 56,
        "goals": 1,
        "assists": 0,
        "note": "41' equaliser from Jérémy Doku's cross (a scuffed left-foot finish). Substituted 56' for Omar Marmoush with City down to 10 men."
      },
      "mbappe": {
        "team": "Real Madrid",
        "played": true,
        "started": false,
        "minutes": 21,
        "goals": 0,
        "assists": 0,
        "note": "On the bench on his return from injury; came on 69' for Brahim Díaz, booked 76'. Minutes approximate (69' to full-time incl. stoppage)."
      },
      "winnerPlayer": "mbappe",
      "summary": "Bernardo Silva was sent off for a handball on his own line (20') and Vinícius Júnior converted the penalty (22'); Haaland levelled before half-time, but Vinícius struck again in stoppage time (90+1', assist Tchouaméni). Real Madrid completed a 5-1 aggregate win and knocked City out for the fourth time in five seasons.",
      "sources": [
        "https://www.uefa.com/uefachampionsleague/match/2048057--man-city-vs-real-madrid/",
        "https://www.footballdatabase.eu/en/match/overview/3367484-manchester_city-real_madrid",
        "https://www.aljazeera.com/sports/2026/3/17/vinicius-jr-scores-twice-as-real-madrid-knock-man-city-out-of-ucl-last-16",
        "https://www.skysports.com/football/news/11095/13520462/man-city-1-2-real-madrid-agg-1-5-ten-man-city-knocked-out-of-champions-league-as-vinicius-jr-scores-two",
        "https://www.espn.com/soccer/match/_/gameId/401862647/real-madrid-manchester-city"
      ]
    }
  ],
  "otherTeamMeetings": [
    {
      "date": "2025-02-19",
      "competition": "UEFA Champions League 2024-25",
      "stage": "Knockout phase play-off, second leg",
      "homeTeam": "Real Madrid",
      "awayTeam": "Manchester City",
      "score": "3-1",
      "aggregate": "Real Madrid won 6-3 on aggregate",
      "venue": "Santiago Bernabéu, Madrid",
      "attendance": 77023,
      "haaland": {
        "team": "Manchester City",
        "played": false,
        "started": false,
        "minutes": 0,
        "goals": 0,
        "assists": 0,
        "note": "Unused substitute — jarred his knee vs Newcastle on 15 Feb; Guardiola: 'not close enough'. Marmoush started instead."
      },
      "mbappe": {
        "team": "Real Madrid",
        "played": true,
        "started": true,
        "minutes": 78,
        "goals": 3,
        "assists": 0,
        "note": "Hat-trick: 4' lob over Ederson after Rúben Dias misjudged a long ball, 33' close-range finish (assist Rodrygo) after dropping Gvardiol, 61' low left-foot shot after a stepover past Foden. Substituted 78'."
      },
      "winnerPlayer": "mbappe",
      "summary": "Mbappé's hat-trick — his first for Real Madrid in Europe — routed a Haaland-less City; Nico González's 90+2' consolation was City's only reply. Referee: István Kovács.",
      "reasonExcluded": "Haaland did not play (unused substitute)",
      "sources": [
        "https://en.wikipedia.org/wiki/2024%E2%80%9325_UEFA_Champions_League_knockout_phase",
        "https://www.skysports.com/football/real-madrid-vs-manchester-city/teams/526864",
        "https://www.skysports.com/football/news/11945/13311466/real-madrid-3-1-man-city-agg-6-3-kylian-mbappe-hat-trick-inspires-champions-league-knockout-play-off-second-leg-rout",
        "https://www.cnn.com/2025/02/20/sport/kylian-mbappe-real-madrid-manchester-city-champions-league-spt",
        "https://www.goal.com/en-us/lists/man-city-champions-league-erling-haaland-bench-must-win-real-madrid-showdown/bltf925931298d8c0f8"
      ]
    },
    {
      "date": "2025-12-10",
      "competition": "UEFA Champions League 2025-26",
      "stage": "League phase, matchday 6",
      "homeTeam": "Real Madrid",
      "awayTeam": "Manchester City",
      "score": "1-2",
      "aggregate": null,
      "venue": "Santiago Bernabéu, Madrid",
      "attendance": null,
      "haaland": {
        "team": "Manchester City",
        "played": true,
        "started": true,
        "minutes": 90,
        "goals": 1,
        "assists": 0,
        "note": "43' penalty (awarded after VAR review for Rüdiger pulling him down), sending Courtois the wrong way. Reports state he played through the match; 90 minutes not independently confirmed."
      },
      "mbappe": {
        "team": "Real Madrid",
        "played": false,
        "started": false,
        "minutes": 0,
        "goals": 0,
        "assists": 0,
        "note": "Unused substitute — knee discomfort; Xabi Alonso said using him would have been 'a risk'. Gonzalo García started."
      },
      "winnerPlayer": "haaland",
      "summary": "Rodrygo's 28' opener was cancelled out within seven minutes by Nico O'Reilly and Haaland's penalty as City came from behind to win at the Bernabéu, piling pressure on Xabi Alonso. Mbappé watched from the bench.",
      "reasonExcluded": "Mbappé did not play (unused substitute, knee)",
      "sources": [
        "https://www.uefa.com/uefachampionsleague/match/2046010--real-madrid-vs-man-city/",
        "https://www.aljazeera.com/sports/2025/12/10/manchester-city-beat-real-madrid-2-1-to-pile-pressure-on-xabi-alonso",
        "https://www.skysports.com/football/news/11095/13480926/real-madrid-1-2-man-city-erling-haaland-scores-as-pep-guardiolas-side-close-in-on-champions-league-top-eight-spot",
        "https://www.espn.com/soccer/match/_/gameId/757760/manchester-city-real-madrid",
        "https://www.foxnews.com/sports/kylian-mbappe-an-unused-substitute-in-real-madrids-loss-to-man-city-in-the-champions-league.amp"
      ]
    },
    {
      "date": "2026-03-11",
      "competition": "UEFA Champions League 2025-26",
      "stage": "Round of 16, first leg",
      "homeTeam": "Real Madrid",
      "awayTeam": "Manchester City",
      "score": "3-0",
      "aggregate": null,
      "venue": "Santiago Bernabéu, Madrid",
      "attendance": null,
      "haaland": {
        "team": "Manchester City",
        "played": true,
        "started": true,
        "minutes": 82,
        "goals": 0,
        "assists": 0,
        "note": "Anonymous night: 10 touches and no shots in 82 minutes before being replaced by Marmoush."
      },
      "mbappe": {
        "team": "Real Madrid",
        "played": false,
        "started": false,
        "minutes": 0,
        "goals": 0,
        "assists": 0,
        "note": "Absent through injury (also missing: Bellingham, Rodrygo)."
      },
      "winnerPlayer": "mbappe",
      "summary": "Federico Valverde's first-half hat-trick (20', 27', 42') — the first by a Uruguayan in the Champions League — gave Real Madrid a 3-0 lead; Vinícius missed a second-half penalty. It was City's joint-heaviest UCL knockout defeat.",
      "reasonExcluded": "Mbappé did not play (injured, not in squad)",
      "sources": [
        "https://www.beinsports.com/en-us/soccer/uefa-champions-league/articles/the-brutal-stat-exposing-erling-haaland-s-worst-night-against-real-madrid-2026-03-12",
        "https://www.aljazeera.com/sports/2026/3/11/valverde-hat-trick-gives-real-madrid-3-0-champions-league-win-over-man-city",
        "https://www.espn.com/soccer/match/_/gameId/401862645/manchester-city-real-madrid",
        "https://www.uefa.com/uefachampionsleague/match/2048049--real-madrid-vs-man-city/"
      ]
    },
    {
      "date": "2026-06-26",
      "competition": "FIFA World Cup 2026",
      "stage": "Group I, matchday 3",
      "homeTeam": "Norway",
      "awayTeam": "France",
      "score": "1-4",
      "aggregate": null,
      "venue": "Gillette Stadium ('Boston Stadium'), Foxborough, Massachusetts",
      "attendance": 64146,
      "haaland": {
        "team": "Norway",
        "played": false,
        "started": false,
        "minutes": 0,
        "goals": 0,
        "assists": 0,
        "note": "Unused substitute — Ståle Solbakken made 10 changes to rest regulars with Norway already through to the round of 32."
      },
      "mbappe": {
        "team": "France",
        "played": true,
        "started": true,
        "minutes": null,
        "goals": 0,
        "assists": 2,
        "note": "Captain; assisted Dembélé's 7' and 20' goals. Played most/all of the match — exact minutes not confirmed in sources consulted."
      },
      "winnerPlayer": "mbappe",
      "summary": "Ousmane Dembélé's 32-minute first-half hat-trick (7', 20', 32'), the second-fastest in World Cup history, plus Désiré Doué's 90+4' header beat a second-string Norway, for whom Thelo Aasgaard scored (21'). France topped Group I, Norway finished second. The first-ever World Cup meeting between the nations. Referee: Michael Oliver.",
      "reasonExcluded": "Haaland did not play (rested, unused substitute)",
      "sources": [
        "https://en.wikipedia.org/wiki/2026_FIFA_World_Cup_Group_I",
        "https://www.fifa.com/en/match-centre/match/17/285023/289273/400021489",
        "https://www.cbssports.com/soccer/news/france-norway-ousmane-dembele-starring-role-fastest-world-cup-hat-trick-in-72-years/",
        "https://sports.yahoo.com/soccer/breaking-news/article/world-cup-2026-erling-haaland-was-an-unused-sub-during-a-much-changed-norways-4-1-loss-to-france-175723626.html",
        "https://uk.sports.yahoo.com/news/world-cup-2026-demb-l-210049449.html",
        "https://www.espn.com/soccer/match/_/gameId/760475/france-norway"
      ]
    }
  ],
  "awardsComparison": {
    "asOf": "2026-09-17",
    "verifiedThrough": "2025 award season (Ballon d'Or 22 Sep 2025; The Best FIFA 16 Dec 2025) plus 2025-26 club-season and 2026 World Cup scoring awards",
    "ballonDor2026Status": "Not yet awarded. 30-man shortlist announced 8 Sep 2026 includes both Haaland and Mbappé; ceremony scheduled Monday 26 October 2026 at the London Palladium (first time outside Paris).",
    "ballonDor": {
      "haaland": [
        {
          "year": 2021,
          "rank": 11
        },
        {
          "year": 2022,
          "rank": 10
        },
        {
          "year": 2023,
          "rank": 2
        },
        {
          "year": 2024,
          "rank": 5
        },
        {
          "year": 2025,
          "rank": 26
        },
        {
          "year": 2026,
          "rank": null,
          "status": "nominated (30-man shortlist); ceremony 2026-10-26"
        }
      ],
      "mbappe": [
        {
          "year": 2017,
          "rank": 7
        },
        {
          "year": 2018,
          "rank": 4
        },
        {
          "year": 2019,
          "rank": 6
        },
        {
          "year": 2021,
          "rank": 9
        },
        {
          "year": 2022,
          "rank": 6
        },
        {
          "year": 2023,
          "rank": 3
        },
        {
          "year": 2024,
          "rank": 6
        },
        {
          "year": 2025,
          "rank": 7
        },
        {
          "year": 2026,
          "rank": null,
          "status": "nominated (30-man shortlist); ceremony 2026-10-26"
        }
      ],
      "note": "2020 Ballon d'Or was cancelled (COVID-19). Haaland was not nominated before 2021."
    },
    "goldenBoots": {
      "haaland": [
        "Premier League 2022-23 (36 — single-season record)",
        "Premier League 2023-24 (27)",
        "Premier League 2025-26 (27)"
      ],
      "mbappe": [
        "Ligue 1 2018-19 (33)",
        "Ligue 1 2019-20 (18, shared)",
        "Ligue 1 2020-21 (27)",
        "Ligue 1 2021-22 (28)",
        "Ligue 1 2022-23 (29)",
        "Ligue 1 2023-24 (27) — record sixth Ligue 1 golden boot",
        "La Liga Pichichi 2024-25 (31)",
        "La Liga Pichichi 2025-26 (25)",
        "FIFA World Cup Golden Boot 2022 (8)",
        "FIFA World Cup Golden Boot 2026 (10) — first player to win two World Cup Golden Boots"
      ],
      "note": "Haaland never won the Bundesliga Torjägerkanone (Lewandowski won in his Dortmund seasons). Haaland scored 7 at the 2026 World Cup (joint-3rd behind Mbappé 10 and Messi 8). Youth: Haaland won the 2019 FIFA U-20 World Cup Golden Boot (9 goals)."
    },
    "europeanGoldenShoe": {
      "haaland": [
        "2022-23 (36 goals, 72 pts)"
      ],
      "mbappe": [
        "2024-25 (31 goals, 62 pts)"
      ],
      "note": "2025-26 Golden Shoe won by Harry Kane (Bayern)."
    },
    "uclTopScorer": {
      "haaland": [
        "2020-21 (10)",
        "2022-23 (12)"
      ],
      "mbappe": [
        "2023-24 (8, shared with Harry Kane)",
        "2025-26 (15 — incl. record 13 in the league phase)"
      ]
    },
    "fifaBest": {
      "haaland": [
        {
          "year": 2023,
          "rank": 2,
          "note": "Tied with Messi on 48 points; Messi won on the captains' tiebreak"
        }
      ],
      "mbappe": [
        {
          "year": 2022,
          "rank": 2
        },
        {
          "year": 2023,
          "rank": 3
        },
        {
          "year": 2025,
          "rank": 3,
          "note": "Ceremony 16 Dec 2025, Doha; Dembélé won, Yamal 2nd"
        }
      ]
    },
    "uefaPlayerOfYear": {
      "haaland": [
        {
          "season": "2022-23",
          "rank": 1
        }
      ],
      "mbappe": [
        {
          "season": "2017-18",
          "rank": 6
        },
        {
          "season": "2019-20",
          "rank": 7
        },
        {
          "season": "2021-22",
          "rank": 8
        },
        {
          "season": "2022-23",
          "rank": 6
        }
      ],
      "note": "Award discontinued after the 2022-23 edition (UEFA now co-organises the Ballon d'Or). Haaland is therefore its final winner."
    },
    "otherIndividual": {
      "haaland": [
        "Gerd Müller Trophy 2023",
        "Golden Boy 2020",
        "PFA Players' Player of the Year 2022-23",
        "FWA Footballer of the Year 2022-23",
        "Bundesliga Player of the Season 2020-21",
        "FIFA World Cup 2026: 7 goals, Norway's best-ever finish (quarter-finals); named in FIFA's tournament XI (per Wikipedia)"
      ],
      "mbappe": [
        "Kopa Trophy 2018 (inaugural)",
        "Golden Boy 2017",
        "FIFA World Cup 2018 Best Young Player",
        "FIFA World Cup 2026 Golden Boot and Bronze Ball; all-time World Cup top scorer (22 goals)",
        "UEFA Nations League 2021 Finals top scorer",
        "Ligue 1 Player of the Year x5 (2018-19, 2020-21, 2021-22, 2022-23, 2023-24 per Wikipedia)"
      ]
    },
    "headline": "Individual awards only (team trophies excluded). Ballon d’Or: one podium each (Haaland 2nd 2023, Mbappé 3rd 2023), but Mbappé has 8 top-10 finishes to Haaland’s 3. Domestic golden boots: Mbappé 8 (6 Ligue 1 + 2 Pichichi) vs Haaland 3 (Premier League). World Cup Golden Boots: Mbappé 2, Haaland 0. European Golden Shoe: 1 each. UCL top scorer: 2 each. The Best FIFA: Haaland 1 podium (2nd 2023), Mbappé 3 podiums (2nd 2022, 3rd 2023, 3rd 2025). Only Haaland has won UEFA Men’s Player of the Year (2022-23); both have won the Gerd Müller Trophy (Haaland 2023, Mbappé 2024 shared with Harry Kane). 2026 Ballon d’Or (both nominated) is decided 26 Oct 2026."
  }
}
