Early career 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).
Dnipro in 2016 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. 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.
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 in 2019 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. On 27 August 2018, he was loaned to nearby fellow La Liga team
Leganés, for the
season. Halfway through the campaign, he stated that he was content with being second choice to
Iván Cuéllar, and would complete his contract. On 13 August 2019, he was loaned to
Real Valladolid for the
2019–20 season. On 15 October 2019, Lunin was included in the 20 best under-21 players shortlist for the 2019 Golden Boy award. 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. 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. 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. On 15 May 2022, he played against
Cádiz, saving a penalty and allowing his team to draw 1–1 away from home. On 5 October 2022, Lunin made his
Champions League debut in a 2–1 win against
Shakhtar Donetsk. On 16 October 2022, he became the first Ukrainian player to feature in
El Clásico against
Barcelona, with Real winning 3–1. 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. 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. On 13 February 2024, in a standout performance during Real Madrid's
Champions League knockout stage match against
RB Leipzig at the
Red Bull Arena, Lunin equaled
Thibaut Courtois'
2022 UEFA Champions League final record by making nine saves in a single match, which garnered significant acclaim from the manager
Carlo Ancelotti. Ancelotti hailed it as Lunin's "best game" for the club, emphasising the goalkeeper's critical role in securing a strong position for Real Madrid to advance in the competition. 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. On 13 September 2024, Lunin extended his contract, signing a new five-year deal to remain at Madrid until 2030. ==International career==