Spinner Varun Chakravarthy took 2-17 as Kolkata Knight Riders clinched a play-off spot with an 18-run win over Mumbai Indians in a rain-shortened IPL match.
Two-time champions Kolkata posted 157-7, with Venkatesh Iyer top-scoring with a 21-ball 42, after being asked to bat first in a 16-over match at their Eden Gardens ground.
The bowlers combined to defend the total after Mumbai had posted 65-0 and Chakravarthy, a mystery spinner, took the big wickets of Rohit Sharma, who made 19 after coming in as a substitute, and captain Hardik Pandya, caught for two.
Five-time champions Mumbai, already out of the play-off race, were 139-8 when Tilak Varma hit a 17-ball 32 before falling to fast bowler Harshit Rana, who took two wickets in the final over.
Pace bowler Andre Russell also took two wickets, including the wicket of Suryakumar Yadav, as leaders Kolkata recorded their ninth win in 12 matches to become the first team to clinch a play-off spot.
The top four teams will advance to the playoffs, with the final to be held in Chennai on 26 May.
Kolkata lost openers Phil Salt, out for six, and Sunil Narine, out for a duck off Jasprit Bumrah, in the first two overs and captain Shreyas Iyer soon fell for seven.
But left-handed batsman Venkatesh helped Kolkata fight back with six fours and two sixes, setting the pace that Nitish Rana and Russell picked up in a key stand of 39.
Rana, a left-handed batsman, scored 33 and Russell made 24 off 14 before Rinku Singh, who scored 20, and Ramandeep Singh, an unbeaten 17, helped Kolkata finish on a high.
Two wickets each went to Bumrah and veteran leg-spinner Piyush Chawla.