Rahul Tripathi struck a stunning six in the penultimate delivery after opener Venkatesh Iyer's brilliant half century to help Kolkata Knight Riders beat Delhi Capitals by three wickets in the drama-filled second qualifier and enter the IPL final, in Sharjah on Wednesday.
Two-time champions KKR will face three-time winners Chennai Super Kings in the summit clash in Dubai on Friday.
The 26-year-old Iyer was the star of the day as he struck a 41-ball 55, laced with four boundaries and three sixes. He shared a 96-run stand for the opening wicket with the talented Shubman Gill (46 off 46 balls) in 12.2 overs to seemingly take the game away from DC's reach.
But the match took an incredible dramatic turn towards the end when KKR lost five wickets for seven runs, four of them for duck.
KKR were cruising at 123 for 1 in 15.5 overs but from their on they suffered a stunning batting collapse.
Nitish Rana (13) was out in the last ball of the 16th over and he was followed by Gill four balls later. Still, there was no panic in the KKR camp before Dinesh Kartik's (0) dismissal in the final ball of the 18th over sent alarm bells.
KKR needed 10 runs from the last two overs but Anrich Nortje removed KKR captain Eoin Morgan (0) with the final ball of the 19th over, leaving KKR seven runs to get from the final over.
Shakib Al Hasan (0) and Sunil Narine (0) were then removed in the third and fourth balls before Tripathi hit a six off Ashwin in the fifth ball to help KKR notch up a stunning win in the end.
This will be KKR's third final appearance after winning the title in 2012 and 2014. They had just about managed to sneak into the play-offs at the expense of five-time defending champions Mumbai Indians, thanks to their better net run-rate.
Chasing a target of 136, Iyer and Gill did not show any sign of struggle that the DC batters encountered in the first innings on a sluggish pitch as they scored runs at a relatively brisk pace.
The young pair got the gaps and rotated strikes to unsettle the DC bowlers, including senior India spinner Ravichandran Ashwin, as KKR reached 51 for no loss at the end Powerplay overs.
Iyer swept Ashwin for a four backward of square in the second over before hoisting Axar Patel and Kagiso Rabada for a six each in the fourth and fifth overs respectively.
The only blemish early in the KKR run chase was the dropping of Iyer when on 23 by Rabada on his follow through in the fifth over.
KKR reached 76 for no loss at the halfway mark and the opening pair only got better with the DC bowlers unable to find a way to get the breakthrough.
Iyer was finally out in the 13th over but by that time the match had already turned decisively in favour of KKR.
Earlier, KKR produced a clinical bowling display to restrict DC to 135 for 5.
Sent in to bat, DC batters struggled on a slow pitch with opener Shikhar Dhawan top-scoring with a 39-ball 36 while Shreyas Iyer remained not out on 30 off 27 balls.
Mystery spinner Varun Chakravarthy took two wickets for 26 runs while Lockie Ferguson and Shivam Mavi got one each.
After seven dot balls in the first two overs, DC took 12 runs from the third with Shaw hoisting Shakib Al Hasan for a big six. Dhawan joined the party in the fourth over, smacking two consecutive sixes off Sunil Narine.
Chakravarthy broke the dangerous-looking partnership by having Shaw LBW with his first delivery of the day with the batter playing a wrong line to his googly.
Ferguson was impressive as he conceded just nine runs from his first two overs as DC reached 38 for 1 at the end of Power Play overs.
After a quiet period during which Mavi, Narine and Chakravarthy bowled a tight line and length, Dhawan got a boundary in the 10th over to reach 65 for 1 at the halfway mark.
With odd ball skidding low, it was getting difficult to get runs and DC were dealt a blow when Mavi, who was bowling beautifully, got rid of Marcus Stoinis (18).
With pressure building on the DC batters, Dhawan fell in the 15th over while going for a big shot. He could only get an outside edge off a Chakravarthy delivery for Shakib Al Hasan to take a diving catch at backward point.
DC were 83 for 3 in the 15th over when captain Rishabh Pant (6) came in and he disappointed in a crucial match as he went for a big shot the next over only to balloon a Ferguson delivery for Rahul Tripathi to take a regulation catch.
There was no lack of drama as Shimron Hetmyer was caught by Gill off Chakravarthy in the 17th over but it turned out to be a no ball.