League penalties scored
33 vs 44 taken
Both are their teams' first-choice penalty takers, so spot-kicks are part of every goal comparison between them. This page counts them. In domestic league football, Haaland has scored 28 of 33 penalties (84.8%) and Mbappé 36 of 44 (81.8%), every one of them listed below with its outcome (Understat, as of 2026-10-02). Career-wide, across all competitions, the published totals are roughly 52 from 62 for Haaland and 66 from 82 for Mbappé.
League penalties scored
33 vs 44 taken
League conversion rate
Scored ÷ taken, shoot-outs excluded
League penalties missed
3 vs 8 saved
Career conversion (approx.)
52/62 vs 66/82, all competitions
Penalty share of league goals
179 vs 255 league goals
Longest conversion streak
Consecutive league penalties scored
| Statistic | Haaland | Mbappé |
|---|---|---|
| Domestic league (exact, Understat) | ||
| Penalties taken | 33 | 44 |
| Scored | 28 | 36 (better) |
| Missedsaved, post or off target | 5 (better) | 8 |
| Saved by goalkeeper | 3 (better) | 8 |
| Hit the woodwork | 2 | 0 (better) |
| Conversion rate | 84.8% (better) | 81.8% |
| League games per penalty taken204 vs 318 league apps | 6.2 | 7.2 |
| Penalty share of league goals | 15.6% | 14.1% (better) |
| Longest run of consecutive conversions | 13 (better) | 10 |
| Current club only20/23 at Man City vs 16/20 at Real Madrid | 87.0% (better) | 80.0% |
| All competitions, club + country (approximate) | ||
| Penalties taken (approx.) | 62 | 82 |
| Scored (approx.) | 52 | 66 (better) |
| Missed (approx.) | 10 (better) | 16 |
| Conversion rate (approx.) | 83.9% (better) | 80.5% |
| Penalty share of career goals (approx.) | 14.0% (better) | 14.8% |
League rows cover Haaland's Bundesliga and Premier League seasons and Mbappé's Ligue 1 and La Liga seasons from 2015/16; Haaland's Norwegian and Austrian penalties are not covered. Approximate career rows come from published summaries (FootballTransfers for Haaland, StatMuse for Mbappé) and may lag the live totals by a few weeks. Shoot-out kicks are excluded throughout.
| Season | Club | Taken | Scored | Missed | Conversion |
|---|---|---|---|---|---|
| 2020/21 | Borussia Dortmund | 4 | 2 | 2 | 50.0% |
| 2021/22 | Borussia Dortmund | 6 | 6 | 0 | 100.0% |
| 2022/23 | Manchester City | 7 | 7 | 0 | 100.0% |
| 2023/24 | Manchester City | 8 | 7 | 1 | 87.5% |
| 2024/25 | Manchester City | 4 | 3 | 1 | 75.0% |
| 2025/26 | Manchester City | 4 | 3 | 1 | 75.0% |
| All league seasons | 33 | 28 | 5 | 84.8% |
| Season | Club | Taken | Scored | Missed | Conversion |
|---|---|---|---|---|---|
| 2018/19 | Paris Saint-Germain | 2 | 1 | 1 | 50.0% |
| 2020/21 | Paris Saint-Germain | 6 | 6 | 0 | 100.0% |
| 2021/22 | Paris Saint-Germain | 4 | 4 | 0 | 100.0% |
| 2022/23 | Paris Saint-Germain | 4 | 3 | 1 | 75.0% |
| 2023/24 | Paris Saint-Germain | 8 | 6 | 2 | 75.0% |
| 2024/25 | Real Madrid | 9 | 7 | 2 | 77.8% |
| 2025/26 | Real Madrid | 9 | 8 | 1 | 88.9% |
| 2026/27 | Real Madrid | 2 | 1 | 1 | 50.0% |
| All league seasons | 44 | 36 | 8 | 81.8% |
| Date | Match | Minute | Outcome | Final score |
|---|---|---|---|---|
| 30 January 2021 | Borussia Dortmund v Augsburg (H) | 20' | post | 3-1 |
| 21 April 2021 | Borussia Dortmund v Union Berlin (H) | 26' | saved | 2-0 |
| 27 August 2023 | Manchester City v Sheffield United (A) | 36' | post | 1-2 |
| 26 December 2024 | Manchester City v Everton (H) | 52' | saved | 1-1 |
| 9 November 2025 | Manchester City v Liverpool (H) | 12' | saved | 3-0 |
| Date | Match | Minute | Outcome | Final score |
|---|---|---|---|---|
| 17 March 2019 | Paris Saint-Germain v Marseille (H) | 93' | saved | 3-1 |
| 13 August 2022 | Paris Saint-Germain v Montpellier (H) | 22' | saved | 5-2 |
| 29 October 2023 | Paris Saint-Germain v Brest (A) | 88' | saved | 2-3 |
| 2 February 2024 | Paris Saint-Germain v Strasbourg (A) | 5' | saved | 1-2 |
| 4 December 2024 | Real Madrid v Athletic Club (A) | 67' | saved | 2-1 |
| 24 May 2025 | Real Madrid v Real Sociedad (H) | 37' | saved | 2-0 |
| 26 October 2025 | Real Madrid v Barcelona (H) | 51' | saved | 2-1 |
| 4 September 2026 | Real Madrid v Real Betis (A) | 93' | saved | 1-0 |
| Date | Season | Match | Min | Outcome | Score |
|---|---|---|---|---|---|
| 2020-09-19 | 2020/21 | Borussia Dortmund v Borussia M.Gladbach (H) | 53' | Scored | 3-0 |
| 2021-01-30 | 2020/21 | Borussia Dortmund v Augsburg (H) | 20' | Post | 3-1 |
| 2021-04-18 | 2020/21 | Borussia Dortmund v Werder Bremen (H) | 33' | Scored | 4-1 |
| 2021-04-21 | 2020/21 | Borussia Dortmund v Union Berlin (H) | 26' | Saved | 2-0 |
| 2021-09-11 | 2021/22 | Borussia Dortmund v Bayer Leverkusen (A) | 76' | Scored | 3-4 |
| 2021-10-16 | 2021/22 | Borussia Dortmund v Mainz 05 (H) | 53' | Scored | 3-1 |
| 2021-12-15 | 2021/22 | Borussia Dortmund v Greuther Fuerth (H) | 32' | Scored | 3-0 |
| 2022-04-30 | 2021/22 | Borussia Dortmund v Bochum (H) | 17' | Scored | 3-4 |
| 2022-04-30 | 2021/22 | Borussia Dortmund v Bochum (H) | 29' | Scored | 3-4 |
| 2022-05-14 | 2021/22 | Borussia Dortmund v Hertha Berlin (H) | 67' | Scored | 2-1 |
| 2022-08-07 | 2022/23 | Manchester City v West Ham (A) | 35' | Scored | 0-2 |
| 2022-10-22 | 2022/23 | Manchester City v Brighton (H) | 42' | Scored | 3-1 |
| 2022-11-05 | 2022/23 | Manchester City v Fulham (H) | 94' | Scored | 2-1 |
| 2023-01-22 | 2022/23 | Manchester City v Wolverhampton Wanderers (H) | 49' | Scored | 3-0 |
| 2023-03-11 | 2022/23 | Manchester City v Crystal Palace (A) | 77' | Scored | 0-1 |
| 2023-04-15 | 2022/23 | Manchester City v Leicester (H) | 12' | Scored | 3-1 |
| 2023-04-30 | 2022/23 | Manchester City v Fulham (A) | 2' | Scored | 1-2 |
| 2023-08-27 | 2023/24 | Manchester City v Sheffield United (A) | 36' | Post | 1-2 |
| 2023-09-02 | 2023/24 | Manchester City v Fulham (H) | 69' | Scored | 5-1 |
| 2023-10-29 | 2023/24 | Manchester City v Manchester United (A) | 25' | Scored | 0-3 |
| 2023-11-12 | 2023/24 | Manchester City v Chelsea (A) | 24' | Scored | 4-4 |
| 2024-04-13 | 2023/24 | Manchester City v Luton (H) | 75' | Scored | 5-1 |
| 2024-05-04 | 2023/24 | Manchester City v Wolverhampton Wanderers (H) | 11' | Scored | 5-1 |
| 2024-05-04 | 2023/24 | Manchester City v Wolverhampton Wanderers (H) | 47' | Scored | 5-1 |
| 2024-05-14 | 2023/24 | Manchester City v Tottenham (A) | 90' | Scored | 0-2 |
| 2024-08-24 | 2024/25 | Manchester City v Ipswich (H) | 11' | Scored | 4-1 |
| 2024-12-26 | 2024/25 | Manchester City v Everton (H) | 52' | Saved | 1-1 |
| 2025-03-15 | 2024/25 | Manchester City v Brighton (H) | 10' | Scored | 2-2 |
| 2025-05-25 | 2024/25 | Manchester City v Fulham (A) | 71' | Scored | 0-2 |
| 2025-11-09 | 2025/26 | Manchester City v Liverpool (H) | 12' | Saved | 3-0 |
| 2025-12-14 | 2025/26 | Manchester City v Crystal Palace (A) | 88' | Scored | 0-3 |
| 2026-01-07 | 2025/26 | Manchester City v Brighton (H) | 40' | Scored | 1-1 |
| 2026-02-08 | 2025/26 | Manchester City v Liverpool (A) | 92' | Scored | 1-2 |
| Date | Season | Match | Min | Outcome | Score |
|---|---|---|---|---|---|
| 2019-03-02 | 2018/19 | Paris Saint-Germain v Caen (A) | 58' | Scored | 1-2 |
| 2019-03-17 | 2018/19 | Paris Saint-Germain v Marseille (H) | 93' | Saved | 3-1 |
| 2020-09-20 | 2020/21 | Paris Saint-Germain v Nice (A) | 37' | Scored | 0-3 |
| 2020-10-31 | 2020/21 | Paris Saint-Germain v Nantes (A) | 64' | Scored | 0-3 |
| 2020-11-20 | 2020/21 | Paris Saint-Germain v Monaco (A) | 36' | Scored | 3-2 |
| 2020-12-16 | 2020/21 | Paris Saint-Germain v Lorient (H) | 50' | Scored | 2-0 |
| 2021-02-27 | 2020/21 | Paris Saint-Germain v Dijon (A) | 31' | Scored | 0-4 |
| 2021-04-18 | 2020/21 | Paris Saint-Germain v Saint-Etienne (H) | 86' | Scored | 3-2 |
| 2021-10-15 | 2021/22 | Paris Saint-Germain v Angers (H) | 86' | Scored | 2-1 |
| 2021-12-12 | 2021/22 | Paris Saint-Germain v Monaco (H) | 11' | Scored | 2-0 |
| 2022-04-17 | 2021/22 | Paris Saint-Germain v Marseille (H) | 49' | Scored | 2-1 |
| 2022-05-14 | 2021/22 | Paris Saint-Germain v Montpellier (A) | 59' | Scored | 0-4 |
| 2022-08-13 | 2022/23 | Paris Saint-Germain v Montpellier (H) | 22' | Saved | 5-2 |
| 2022-10-29 | 2022/23 | Paris Saint-Germain v Troyes (H) | 76' | Scored | 4-3 |
| 2022-12-28 | 2022/23 | Paris Saint-Germain v Strasbourg (H) | 95' | Scored | 2-1 |
| 2023-06-03 | 2022/23 | Paris Saint-Germain v Clermont Foot (H) | 20' | Scored | 2-3 |
| 2023-08-19 | 2023/24 | Paris Saint-Germain v Toulouse (A) | 61' | Scored | 1-1 |
| 2023-09-03 | 2023/24 | Paris Saint-Germain v Lyon (A) | 3' | Scored | 1-4 |
| 2023-10-21 | 2023/24 | Paris Saint-Germain v Strasbourg (H) | 9' | Scored | 3-0 |
| 2023-10-29 | 2023/24 | Paris Saint-Germain v Brest (A) | 88' | Saved | 2-3 |
| 2023-11-24 | 2023/24 | Paris Saint-Germain v Monaco (H) | 38' | Scored | 5-2 |
| 2023-12-17 | 2023/24 | Paris Saint-Germain v Lille (A) | 65' | Scored | 1-1 |
| 2024-02-02 | 2023/24 | Paris Saint-Germain v Strasbourg (A) | 5' | Saved | 1-2 |
| 2024-02-17 | 2023/24 | Paris Saint-Germain v Nantes (A) | 77' | Scored | 0-2 |
| 2024-09-01 | 2024/25 | Real Madrid v Real Betis (H) | 75' | Scored | 2-0 |
| 2024-09-14 | 2024/25 | Real Madrid v Real Sociedad (A) | 74' | Scored | 0-2 |
| 2024-09-21 | 2024/25 | Real Madrid v Espanyol (H) | 89' | Scored | 4-1 |
| 2024-12-04 | 2024/25 | Real Madrid v Athletic Club (A) | 67' | Saved | 2-1 |
| 2025-01-19 | 2024/25 | Real Madrid v Las Palmas (H) | 17' | Scored | 4-1 |
| 2025-01-25 | 2024/25 | Real Madrid v Real Valladolid (A) | 90' | Scored | 0-3 |
| 2025-03-29 | 2024/25 | Real Madrid v Leganes (H) | 31' | Scored | 3-2 |
| 2025-05-11 | 2024/25 | Real Madrid v Barcelona (A) | 4' | Scored | 4-3 |
| 2025-05-24 | 2024/25 | Real Madrid v Real Sociedad (H) | 37' | Saved | 2-0 |
| 2025-08-19 | 2025/26 | Real Madrid v Osasuna (H) | 50' | Scored | 1-0 |
| 2025-09-23 | 2025/26 | Real Madrid v Levante (A) | 63' | Scored | 1-4 |
| 2025-10-26 | 2025/26 | Real Madrid v Barcelona (H) | 51' | Saved | 2-1 |
| 2025-11-01 | 2025/26 | Real Madrid v Valencia (H) | 18' | Scored | 4-0 |
| 2025-11-30 | 2025/26 | Real Madrid v Girona (A) | 66' | Scored | 1-1 |
| 2025-12-20 | 2025/26 | Real Madrid v Sevilla (H) | 85' | Scored | 2-0 |
| 2026-01-17 | 2025/26 | Real Madrid v Levante (H) | 57' | Scored | 2-0 |
| 2026-01-24 | 2025/26 | Real Madrid v Villarreal (A) | 93' | Scored | 0-2 |
| 2026-02-01 | 2025/26 | Real Madrid v Rayo Vallecano (H) | 99' | Scored | 2-1 |
| 2026-09-04 | 2026/27 | Real Madrid v Real Betis (A) | 93' | Saved | 1-0 |
| 2026-09-12 | 2026/27 | Real Madrid v Rayo Vallecano (H) | 13' | Scored | 4-1 |
Haaland converts 84.8% of his league penalties, Mbappé 81.8%. The difference is 3.0 percentage points, or about one penalty in every 33. Both are above the long-run average for top-flight penalties, which sits around 76 to 78%, and the career-wide approximations (83.9% and 80.5%) tell the same story. Haaland's longest run without a miss is 13 penalties, from his second Dortmund season through the whole of the 52-goal 2022/23 campaign; Mbappé's is 10.
The misses look different. Every one of Mbappé's 8 league misses was a save: goalkeepers have read him, most often when he goes to his natural side. Haaland's 5 misses split 3 saved and 2 against the woodwork, and both of his Dortmund misses came in his first full season there, when he was still establishing himself as the taker. Neither has missed a league penalty off target. Mbappé's most expensive misses have come outside the league and are not in these tables: the decisive kick in the Euro 2020 shoot-out against Switzerland and a quarter-final penalty against Morocco at the 2026 World Cup, a game France still won.
Mbappé has taken 44 league penalties to Haaland's 33, but he has also played 114 more league games. Per match it is Haaland who steps up more often: one penalty every 6.2 league games against one every 7.2. Haaland's number is high for a centre-forward and reflects both how often Manchester City are fouled in the box and the fact that he has been the taker from his first day there. Mbappé's is held down by history. At PSG Mbappé was behind Edinson Cavani and then shared duties with Neymar, and in 2016/17, 2017/18, 2019/20 he did not score a single league penalty. He became the undisputed taker only after Neymar's 2023 departure, and at Real Madrid he has taken 20 in just over two seasons (16 scored, 80.0%). Haaland took his first league penalty on 19 September 2020 and has been Manchester City's taker since arriving: 23 taken, 20 scored (87.0%).
Penalties are 15.6% of Haaland's league goals and 14.1% of Mbappé's, so neither total is inflated by them to any unusual degree; for comparison, several of the most prolific strikers of the past decade have been above 20%. Strip penalties out and the two are almost level on non-penalty goals per 90 in the league, which the non-penalty goals page covers in full. Career-wide, penalties are roughly 14.0% of Haaland's 372 goals and 14.8% of Mbappé's 445.
The league data does not cover Norway or France. Published counts give Haaland about 10 penalties scored from 12 for Norway, and Mbappé's France record includes converted penalties in a World Cup final (2022) and a World Cup round of 16 (2026, against Paraguay) as well as the two misses above. The international stats page has their full records for country.
Haaland, by conversion rate. In domestic league football Haaland has scored 28 of 33 penalties (84.8%) and Mbappé 36 of 44 (81.8%), as of 2026-10-02. Across all competitions the approximate figures are 83.9% and 80.5%.
5 in league football: 3 saved and 2 against the woodwork, from 33 taken. Across all competitions for club and country he has missed roughly 10 of about 62.
8 in league football, all of them saved by the goalkeeper, from 44 taken. Across all competitions he has missed roughly 16 of about 82, excluding shoot-outs; his best-known misses, in the Euro 2020 shoot-out against Switzerland and in the 2026 World Cup quarter-final against Morocco, were not league penalties.
Mbappé in total: 44 league penalties to Haaland's 33, and since joining Real Madrid he has averaged about nine a season. Per game, though, Haaland has taken one every 6.2 league matches and Mbappé one every 7.2. Penalties account for 16% of Haaland's league goals and 14% of Mbappé's.
No. Shoot-out kicks are not goals and are not counted anywhere on this site. Only penalties awarded during a match are included.
Shot-by-shot data for both players exists only for domestic league matches (Understat). Cup, Champions League and international penalties are included in the approximate career totals, which come from published summaries and are marked as such.