Delhi Capitals ensured they will have two opportunities to reach the final of the Indian Premier League with a six-wicket defeat of Royal Challengers Bangalore, who also made the last four.
Bangalore ensured their net run-rate remained high enough to advance.
They will meet either Kolkata Knight Riders or Sunrisers Hyderabad.
Kolkata occupy fourth place, but will be overtaken by Sunrisers if they beat Mumbai in Tuesday's final group game.
Whoever does advance will play Bangalore in Friday's eliminator, where the winners go on to play the losers of the Mumbai-Delhi match, and the defeated team goes out.
Bangalore, captained by India skipper Virat Kohli, would have been at risk of elimination had they been beaten inside 17.3 overs, thus severely denting their net run-rate.
That was a possibility when Delhi pair Shikhar Dhawan and Ajinkya Rahane were adding 88 for the second wicket.
However, Dhawan fell for 54 and Rahane for 60, leaving Delhi to eventually complete the chase with an over to spare.
It means that Bangalore will enter the play-offs on the back of four successive defeats.
DELHI CAPITALS: Shikhar Dhawan, Prithvi Shaw, Ajinkya Rahane, Shreyas Iyer (capt), Rishabh Pant (wk), Marcus Stoinis, Daniel Sams, Axar Patel, Ravichandran Ashwin, Kagiso Rabada, Anrich Nortje.
ROYAL CHALLENGERS BANGALORE: Josh Philippe, Devdutt Padikkal, Virat Kohli (capt), AB de Villiers (wk), Washington Sundar, Shivam Dube, Shahbaz Ahmed, Chris Morris, Isuru Udana, Mohammed Siraj, Yuzvendra Chahal.