*Club domestic league appearances and goals, correct as of 14:59, 9 November 2024 (UTC) ‡ National team caps and goals, correct as of 14:58, 17 June 2024 (UTC)
Lunin was a player for Metalist Youth Sportive School (first trainer was Oleksandr Khrabrov) and Dnipro Youth Sportive School Systems (first trainer was Kostiantyn Pavliuchenko).[4]
Dnipro
From summer 2016, after graduation of the youth sportive school, he played in the Dnipro reserves. In the main-team squad, Lunin made his debut as a start-squad player at the age of 17, in the match against Karpaty Lviv on 16 October 2016 in the Ukrainian Premier League.[5] He was Dnipro's first choice goalkeeper the rest of the season, playing in a total of 25 matches for the club, across the league and club competitions. However, at the end of the season, due to financial irregularities, Dnipro was relegated directly to the Ukrainian Second League (third level of football), and many players, Lunin included, were allowed to leave the club.[6]
Zorya Luhansk
Lunin spent the 2017–18 season playing for Zorya Luhansk, where he once again quickly established himself as the first keeper. On 14 September 2017, Lunin made his European debut in a 0–2 Europa League group stage loss to Östersunds at the Arena Lviv. He ended up playing in 36 matches across all competitions that season, including all six of Zorya's Europa League matches.
Real Madrid
On 19 June 2018, La Liga club Real Madrid reached an agreement with Zorya Luhansk to sign Lunin in a reportedly €8.5 million plus 5 million add-ons deal.[7][8] On 27 August 2018, he was loaned to nearby fellow La Liga team Leganés, for the season.[9][10] Halfway through the campaign, he stated that he was content with being second choice to Iván Cuéllar, and would complete his contract.[11]
On 13 August 2019, he was loaned to Real Valladolid for the 2019–20 season.[12][13] On 15 October 2019, Lunin was included in the 20 best under-21 players shortlist for the 2019 Golden Boy award.[14]
On 15 January 2020, the loan with Real Valladolid was terminated. On the same day, Real Oviedo announced the loan of Lunin until 30 June 2020.[15][16]
On 20 January 2021, he made his first team debut for Real Madrid in a 1–2 extra time loss to Alcoyano in the 2020–21 Copa del Rey.[17] With Madrid confirmed 2021–22 champions, Lunin made his league debut on 8 May 2022 in the Madrid derby against Atlético Madrid, which Real lost 1–0.[18] On 15 May 2022, he played against Cádiz, saving a penalty and allowing his team to draw 1–1 away from home.[19][20][21]
On 8 November 2023, Lunin was called to action in Real Madrid's Champions League group stage match against Braga after Kepa suffered an injury during the warm-up.[24][25] Lunin made a significant contribution to the team's performance by saving a penalty shot from Braga winger Álvaro Djaló in the fourth minute of the game, which helped maintain Real Madrid's lead in their group standings.[26]
On 17 April 2024, Lunin made eight saves in the Champions League quarter-finals' second leg against Manchester City, which ended in a 1–1 draw, and then went on to stop Manchester City players Bernardo Silva and Mateo Kovačić's penalties in the shootout, securing Real Madrid's advancement to the semi-finals.[30][31][32]
On 13 September 2024, Lunin extended his contract, signing a new five-year deal to remain at Madrid until 2030.[33]
International career
In 2019, Lunin backstopped Ukraine U20 team to their first ever FIFA U-20 World Cup victory.[34] He played in six of his team's seven matches, but missed the quarterfinal match against Colombia due to being called up to Ukraine's main squad for the UEFA Euro 2020 qualifying matches against Serbia and Luxembourg.[35][36] After the 3–1 final match victory against South Korea, Lunin was awarded the Golden Glove as the best goalkeeper of the tournament.[37]