Match ends, Fulham 1, Cardiff City 2.
Fulham withstood a gutsy fightback from Cardiff to reach the Championship play-off final despite losing the second leg of their semi-final.
Cardiff won 2-1 on the night at Craven Cottage courtesy of goals from Curtis Nelson and Lee Tomlin, as Neeskens Kebano levelled for Fulham moments after Nelson's headed opener.
But despite a nervy second half following Tomlin's volley, Fulham's 2-0 first-leg lead helped them progress 3-2 on aggregate to a Wembley final against Brentford.
It keeps Fulham's chances of an immediate return to the Premier League alive while Cardiff's attempts to secure promotion back at the first time of asking are over.
Needing to create history by being the first team to overturn a two-goal first-leg deficit in a second tier semi-final, Cardiff thought they had made the ideal start when centre-back Nelson rose at the back post to head in Joe Ralls' corner.
But just 24 seconds later, Fulham were level and back to being two goals clear on aggregate.
Straight from the restart, Kebano swept in right-footed ahead of Cardiff right-back Leandro Bacuna to meet Bobby Decordova-Reid's low cross from 12 yards out.
Kebano, who had also netted a brilliant free-kick in injury time of the first leg to put Fulham seemingly in command of the tie, had appeared to dash Cardiff's chances of a spirited comeback.
Fulham continued to test Alex Smithies in the Cardiff goal before half-time, but good saves from Cyrus Christie and Anthony Knockaert efforts kept the scoreline level on the night.
With the visitors' opening attack of the second half, a Will Vaulks long throw caused problems in the Fulham penalty box - Nathaniel Mendez-Laing's header was parried away by Marek Rodak but centre-back Michael Hector was unable to force it clear, allowing Tomlin to pounce with a volley just inside the post.
But despite Fulham jitters, Cardiff were unable to capitalise. Smithies again had to make impressive saves to twice deny substitute Aboubakar Kamara, the second a fingertip deflection on to the base of the post.
At the other end, Rodak still had to be alert to maintain the home side's advantage when he first blocked a close-range effort from Robert Glatzel and then leapt back to his feet to tip over Vaulks' long-range drive.
Cardiff kept pushing to the end for the third goal that would have forced extra time and Glatzel came within inches of doing so deep into stoppage time when he volleyed narrowly over the crossbar from Callum Paterson's nod-down.
It was not to be for the visitors, who sunk to their knees at full-time while Fulham breathed a sigh of relief.
Fulham set up neighbourly final
Fulham's aggregate victory sets up an all-west London final on Tuesday against Brentford, who themselves saw off opposition from south Wales in the shape of Swansea on Wednesday.
Just four and a half miles separate the two clubs, who finished fourth and third respectively in the regular season.
Their counter-attacking styles of play, which produced goals aplenty in the regular season, should make for an attractive final.
Fulham's bid to make an immediate return to the Premier League has been boosted by a eight-game unbeaten run stretching into the play-offs, which at one stage gave them the chance to grab the second automatic promotion place at both West Brom and Brentford's expense.
What made their semi-final success over Cardiff all the more impressive was the fact it was done without Championship golden boot winner Aleksandar Mitrovic. The Serbia international again missed out with a hamstring strain, which could also put his participation in Tuesday's final in doubt.
While Mitrovic has been an absentee, the likes of Decordova-Reid, Onomah and Kebano have stepped up to provide the attacking flair alongside the more established names of Knockaert and captain Tom Cairney.
Cairney was the match-winner on Fulham's last Wembley visit just two years ago, when they beat Aston Villa 1-0 in the 2018 Championship play-off final.
A step too far for Harris' Cardiff
While one side retains hopes of an immediate top-flight return, for Cardiff that dream came to an end.
Manager Neil Harris transformed their seemingly stuttering campaign when he took over in November following Neil Warnock's departure and lifted them from 14th to an eventual fifth-placed finish.
Nelson's early goal hinted that a memorable away triumph was on, but they failed to threaten again before half-time once Kebano produced the instant equaliser.
Having shuffled his side slightly from the first leg, it was the introduction of two players who dropped out that helped them retake the second-leg lead.
But Tomlin later had to limp off with a hamstring injury and that illustrated how Cardiff were always playing catch-up after losing ground in the first leg.
Fulham boss Scott Parker: "It was very nervy and I think we knew we were playing against a wounded animal in Cardiff, who had nothing to lose.
"At times tonight, we probably fell a bit short at dealing with the onslaught they bring to the game. It made it a bit of an uncomfortable night for us.
"But saying that, I don't think we should lose sight of what we've done in 48 games this season, coming through a semi-final over two legs.
"What's most important is we've won the tie on aggregate and now we go again for a final on Tuesday, which we'll be a completely different game.
"I'm extremely proud to reach a final and when it all settles after tonight, we'll reflect on what we've achieved as a team."
Cardiff boss Neil Harris: "Firstly I am disappointed we haven't got through. I had the belief coming here that we could go on and get through.
"I know most people didn't but I know the capabilities of the group. I felt even at the end there would be chances and Robert Glatzel gets that chance.
"But that's the disappointment done. I can't be prouder of the players, the staff, the whole football club on where we have dragged ourselves to this season."
- 12RodákBooked at 59mins
- 22ChristieBooked at 69mins
- 23BryanSubstituted forLe Marchandat 90'minutes
- 24KnockaertSubstituted forOdoiat 76'minutes
- 25OnomahBooked at 90mins
- 7KebanoSubstituted forKamaraat 45'minutes
- 14De Cordova-ReidBooked at 50mins
- 20Le Marchand
- 43S Sessegnon
- 7BacunaBooked at 45mins
- 4MorrisonBooked at 35mins
- 6VaulksBooked at 52mins
- 15PackSubstituted forTomlinat 45'minutesSubstituted forWhyteat 84'minutes
- 33HoilettSubstituted forMendez-Laingat 45'minutes
- 8RallsBooked at 61mins
- 11MurphySubstituted forPatersonat 81'minutes
- 23WardSubstituted forGlatzelat 71'minutes
- 24B Smith
- Paul Tierney
- Shots on Target
Second Half ends, Fulham 1, Cardiff City 2.
Attempt missed. Robert Glatzel (Cardiff City) right footed shot from the right side of the box is just a bit too high. Assisted by Callum Paterson with a headed pass following a set piece situation.
Josh Onomah (Fulham) is shown the yellow card.
Foul by Josh Onomah (Fulham).
Joe Bennett (Cardiff City) wins a free kick in the defensive half.
Harrison Reed (Fulham) wins a free kick in the defensive half.
Foul by Robert Glatzel (Cardiff City).
Substitution, Fulham. Maxime Le Marchand replaces Joe Bryan.
Denis Odoi (Fulham) wins a free kick in the defensive half.
Foul by Robert Glatzel (Cardiff City).
Foul by Tom Cairney (Fulham).
Will Vaulks (Cardiff City) wins a free kick in the defensive half.
Foul by Michael Hector (Fulham).
Callum Paterson (Cardiff City) wins a free kick on the left wing.
Substitution, Cardiff City. Gavin Whyte replaces Lee Tomlin because of an injury.
Substitution, Cardiff City. Callum Paterson replaces Josh Murphy.
Harrison Reed (Fulham) wins a free kick in the attacking half.
Foul by Josh Murphy (Cardiff City).
Corner, Fulham. Conceded by Joe Bennett.