Chennai Super Kings beat Royal Challengers Bangalore by six wickets in the first play-off at the Wankhede Stadium on Tuesday to move into the final of the Indian Premier League.
Chasing a tough target (176), the defending champions romped home with two balls to spare.
Suresh Raina (73 not out) and Albie Morkel (28 not out) put on 46 runs, in just three overs, for the fifth wicket to take their team home.
Raina's 50-ball knock was inclusive of four hits to the fence and six over it and earned him the man of the match award.
The holders now have a chance to defend their title against either Bangalore, or the winner of the eliminator between Mumbai Indians and Kolkata Knight Riders.
Bangalore have a second chance, playing the winner of the eliminator in the second play-off in Chennai on Saturday.
Chennai were precariously placed at seven for two and way behind the asking rate at the midway stage, but Bangalore lost the plot in the last five overs.
Needing 12 off the last over, bowled by rival skipper Daniel Vettori, Morkel swung him for a four and a six to complete the task.
The Super Kings were off to a disastrous start, losing openers Michael Hussey and Murali Vijay with only seven on the board. Both were trapped leg before -- Hussey by Zaheer Khan, with a ball that came in, and Vijay by Sreenath Aravind.
After that, it was left to Raina and Badrinath to do the repair work against some good bowling by Zaheer and Aravind.
After six overs the defending champions were just 25 for two. Subramaniam Badrinath, on nine, offered Kohli a return catch which the bowler did not accept and then Raina, on 14, was caught at fine leg off the same bowler only for it to be declared a waist-high no-ball.
Kohli was hit for 16 runs in the over as Badrinath took full advantage of two full tosses, which he dispatched to the ropes to help the Super Kings reach 50 in the ninth over.
The 50 partnership was hoisted in 52 balls, keeping the holders in the hunt for a direct berth in the summit clash.
Badrinath was dismissed, caught in the deep covers off Abhimanyu Mithun after adding 63 runs for the third wicket with Raina.
Dhoni joined Raina, who carted Mithun for two sixes in the 13th over before his captain struck the last ball, a free hit, for another four. The over cost 23 runs, and at the end of it the Super Kings were six short of 100.
They needed 58 off the last four overs but it came down when Raina swung Zaheer for two sixes while Dhoni swatted him over long-on for another.
The over, which also saw the dismissal of Dhoni, cost the team 20 runs.
A tight 18th over by Gayle was followed by an expensive one from Aravind who was hit for three sixes by Morkel and Raina, who swung the ball over mid-wicket. 21 runs came off that over.
Earlier, Virat Kohli struck a superb unbeaten 70 off only 44 deliveries to lift Royal Challengers Bangalore to an imposing 175 for 4.
Kohli began slowly and then accelerated towards the end of the innings, hammering three sixes and five fours, as RCB made light of a rare failure by Chris Gayle to set a stiff target for Chennai, who need to score at 8.8 runs per over for victory.
Apart from Kohli, opener Mayank Agarwal scored 34 off 33 balls, with five fours, and Luke Pomersbach made a quick-fire 29 off only 18 balls to give the innings the much-needed impetus when it was needed.
For the Super Kings, left-arm pacer Doug Bollinger emerged the pick of the bowlers with one for 20 while off-spinner Ravichandran Ashwin, who dismissed Gayle cheaply in his first spell, finished with one for 33.
Dwayne Bravo and Albie Morkel were off-target, the latter conceding 40 runs in his four wicketless overs, while Shadab Jakati picked one for 37.
It was surprising to find that Ashwin, who had normally opened the bowling, wasn't brought in early as Dhoni opted for seamers from both ends.
Though Albie Morkel went for some runs when Mayank Agarwal thumped him for a few boundaries, Doug Bollinger bowled splendidly, not allowing danger man Gayle the chance to drive.