Paris Saint-Germain reached their first Champions League final with a dominant display to beat RB Leipzig 3-0 at the Estadio da Luz in Lisbon.
Marquinhos set Thomas Tuchel's side on their way, heading home Angel Di Maria's free-kick (13) before Di Maria doubled PSG's lead three minutes before the break following a mistake by Peter Gulacsi.
- How the teams lined up | Match stats
- Champions League news | Fixtures
- Get Sky Sports - All channels £23 a month
Juan Bernat glanced in PSG's third 11 minutes into the restart from another Di Maria cross while Neymar struck the post twice in a one-sided semi-final.
In the climax to an engrossing fortnight of European football, PSG will face the winners of Bayern Munich's last four clash with Lyon on Wednesday evening as they seek to mark their 50th anniversary with a first Champions League trophy.
RB Leipzig: Gulacsi (6), Klostermann (6), Upamecano (6), Mukiele (5), Laimer (5), Kampl (5), Sabitzer (5), Angelino (6), Olmo (5), Nkunku (5), Poulsen (6).
Subs: Orban (n/a), Forsberg (6), Adams (n/a), Schick (6), Halstenberg (5).
PSG: Sergio Rico (6), Kehrer (6), Thiago Silva (7), Marquinhos (7), Kimpembe (7), Bernat (7), Ander Herrera (7), Paredes (7), Di Maria (8), Mbappe (7), Neymar (7).
Subs: Verratti (n/a), Choupo-Moting (n/a), Sarabia (n/a), Draxler (n/a).
Man of the match: Angel Di Maria.
How PSG brushed Leipzig aside
On Tuesday, L'Equipe ran the headline 'Changer de Planete', encouraging PSG to reach the next level - or 'go to another world' - after years of near misses. The response was emphatic.
"We ate them up from minute one," said the influential Di Maria. "It's going to be tough to sleep between now and the final. We worked hard all game and we showed we deserve to be here. It doesn't matter who we face: either Bayern or Lyon, we'll give our all."
Tuchel's men were odds-on favourites in the first of these Franco-German semi-final clashes and they are now just one game away from ending their wait for a first Champions League trophy having become the first Ligue 1 club to reach the final since Monaco in 2004.
The last time PSG reached the Champions League semi-finals in 1995, it was three years before Kylian Mbappe was born and 14 years before RB Leipzig even came into existence - but having left it late to book their place in the final four, this was a far more straightforward night for the nine-time Ligue 1 champions.
They might have been in front as early as the seventh minute when Mbappe, on his return to the starting line-up, set Neymar free of Angelino but his shot with the outside of his boot brushed the post.
There was one change for Julian Nagelsmann as Nordi Mukiele came in for Marcel Halstenberg. Christopher Nkunku retained his place to face his former side. Leipzig had the same shape they had against Atletico with Konrad Laimer and Angelino providing the width in possession for the back line to shift from a three to a four.
As for PSG, Mauro Icardi dropped to the bench, while Kylian Mbappe figured in the starting XI for the first time since his ankle injury in the French Cup final on July 24. Angel Di Maria returned in place of Pablo Sarabia while Leandro Paredes started in place of Idrissa Gueye.
Moments later, referee Bjorn Kuipers spotted a handball from the Brazilian in charging down Gulacsi's clearance to rule out Mbappe's strike as Leipzig were warned of what was to come.
Julian Nagelsmann's side - aiming to reach their first Champions League final just 11 years after they were formed - looked like they had been set up to contain their opponents, but they fell behind after 13 minutes when Marquinhos rose unmarked to nod home Di Maria's free-kick.
It meant PSG had scored in each of their last 34 Champions League games, equalling Real Madrid's record in a major European competition. But they weren't finished there as Neymar went close to doubling his side's lead with an audacious free-kick which struck the outside of Gulacsi's post.
Leipzig were desperate for the interval, but they were the creators of their own downfall three minutes before the break as PSG doubled their advantage. Gulacsi looked to play out from the back but his ball seeking Marcel Sabitzer only succeeded in finding Leandro Paredes, whose pass to Neymar was brilliantly flicked inside for Di Maria to ruthlessly fire into the net.
Leipzig had very little to show for their first-half efforts apart from a header wide by Yussuf Poulsen, and Nagelsmann made a double change at the break as he sought to stage a dramatic comeback.
Patrik Schick and Emil Forsberg replaced Christopher Nkunku and Dani Olmo, but despite starting the second period well, with the two substitutes both having attempts that were off target, it was PSG who extended their lead.
Nordi Mukiele slipped as he failed to clear a loose ball and subsequently played Bernat onside for the full-back to steer Di Maria's cross into the far corner.
Leipzig were desperately short on firepower, understandable given the absence of 34-goal top scorer Timo Werner, and Mbappe had the chance to compound their misery when he somehow glanced his header wide from another Di Maria delivery with 20 minutes remaining.
But this had long-since been wrapped up as a contest. PSG have scored 70 goals in 22 games in 2020, and in their 110th game in the Champions League - the longest run of any team before reaching their first final - they are now 90 minutes away from achieving the ultimate prize.
What the managers said
PSG boss Thomas Tuchel: "We stayed faithful to our style of play. When possible, we looked to control the half-spaces and control their counterattacks. And we used the acceleration of Ángel [Di María], Kylian [Mbappé] and Neymar with the ball between the lines.
"We didn't make big tactical changes. Yes, we adapt to all our opponents, but not too much. We have to show our strength, and the players again showed their hunger to win, work together and suffer.
"Football is for the fans. We do all this together. We can really feel that they're with us and that they have confidence in us. I really hope they can feel that this team is a real team."
Leipzig boss Julian Nagelsmann: "We played a good season, we made it to the semi-finals in the Champions League which is a great achievement. We're proud of that. We're frustrated, of course, but we will gather new power ahead of next season. Our opponent today was stronger than us. It wasn't easy to play them. We started OK but conceded the first goal from a set piece which made things difficult.
"We won't be the first team not to stop Neymar and we won't be the last. As a coach you think about the next challenges. There's a lot of positive things we take with us. The attitude of my players was great. We showed character on the pitch, but you have to accept when the opponent is stronger.
"We want to be back and experience the same again in the Champions League next season. Now it's time for vacations for my players before coming together as a team and getting ready for next season."
Man of the match - Angel Di Maria
As the festival of football draws to its conclusion this weekend, it will not have gone unnoticed among Manchester United supporters the role of some of their former players.
Romelu Lukaku tormented Shakhtar Donetsk as Inter Milan reached the Europa League final in Cologne on Friday, and here was the turn of Di Maria to provide a reminder of his qualities.
The Argentine scored and assisted (twice) in a single Champions League game for the first time since November 2013 (for Real Madrid vs Galatasaray) - and he might well have completed a hat-trick of assists had Mbappe steered home his cross with the game already won.
Since his Champions League debut in September 2007, only Lionel Messi and Cristiano Ronaldo (32 each) have provided more assists in the competition than Di Maria (27).
Furthermore, the 32-year-old extended his proud personal record in the competition.
He is now unbeaten in all 17 Champions League matches he's scored in (W15 D2 L0 - 21 goals in total) - only Mohamed Salah (18), Gonzalo Higuaín (21) and Patrick Kluivert (25) have scored in more games without defeat in the competition's history.
PSG seize their opportunity - Opta stats
- PSG will be the fifth different French side to appear in a European Cup/Champions League final and the first since Monaco in 2003-04. Only Italy, Germany (6 each) and England (8) have had more different clubs appear in the final of the competition
- German sides have been eliminated at the semi-finals of the Champions League on each of the last five occasions they have reached this stage of the competition (Bayern four times between 2014-2018 and RB Leipzig tonight), since both Bayern Munich and Borussia Dortmund made the final in 2012-13
- PSG's Marquinhos has scored in back-to-back Champions League games for the first time since October 2013 (his first two appearances in the competition)
- Neymar has been directly involved in 59 goals in 59 Champions League games (35 goals & 24 assists), including 23 goal involvements in 19 appearances for PSG (14 goals & 9 assists)
PSG will face either Bayern Munich or Lyon in the Champions League final at the Estadio da Luz in Lisbon on Sunday - kick-off is at 8pm.
RB Leipzig will have a one-week break before returning to training ahead of the start of the 2020/21 Bundesliga season.