The hosts were put into bat at Eden Gardens and made 195-4 as Robin Uthappa and Shakib Al Hasan piled on the runs.
RCB’s hopes of reaching the post-season were ended as they could only make 165-5 in their reply.
Uthappa continued his remarkable form as he made 83 off just 51 deliveries, his eighth consecutive score of 40 of more.
The 28-year-old claimed the Orange Cap as the tournament’s top run scorer after he hit 10 boundaries and a six in his 51-ball knock.
He put on 121 in 11.4 overs for the fourth wicket with Shakib Al Hasan, who smashed 60—his maiden IPL half-century.
The Bangladeshi all-rounder was bowled by Abu Nechim after hitting three sixes in his 38-ball innings.
|Kolkata Knight Riders: 195-4 (20 Overs)|
|Robin Uthappa||NOT OUT||83||51||162.74||10||1|
|Gautam Gambhir||c Yogesh Takawale b Mitchell Starc||4||4||100.00||1||0|
|Manish Pandey||c Mitchell Starc b Ashok Dinda||13||12||108.33||3||0|
|Yusuf Pathan||run out (Virat Kohli)||22||13||169.23||1||2|
|Shakib Al Hasan||b Abu Nechim||60||38||157.89||5||3|
|Ryan ten Doeschate||NOT OUT||6||3||200.00||0||1|
In their reply, RCB lost hard-hitting Chris Gayle in the second over and, despite not losing any further wickets, could only reach 72-1 at halfway.
Spinners Sunil Narine and Shakib put a stranglehold on the batsmen and the West Indian offie removed both Virat Kohli (38) and Yogesh Takawale (45) in the 13th over.
That left star batsmen Yuvraj Singh and AB de Villiers needing 103 runs from 42 balls, and Narine removed both in the 17th over to finish with 4-20 and ensure his side's progress into the last four after their sixth consecutive win.
|Royal Challengers Bangalore: 165-5 (20 Overs)|
|Chris Gayle||lbw Umesh Yadav||6||9||66.66||1||0|
|Yogesh Takawale||b Sunil Narine||45||36||125.00||5||1|
|Virat Kohli||c Morne Morkel b Sunil Narine||38||31||122.58||3||1|
|Yuvraj Singh||c Vinay Kumar b Sunil Narine||22||12||183.33||1||2|
|AB de Villiers||b Sunil Narine||13||13||100.00||1||0|
|Sachin Rana||NOT OUT||19||12||158.33||2||0|
|Mitchell Starc||NOT OUT||12||8||150.00||1||0|
|EXTRAS||(nb 1, w 1, lb 8)||10|
|TOTAL||(5 wickets; 20 overs)||165|
|Shakib Al Hasan||4||0||27||0||6.75||5|
Kolkata’s final regular season game is against Sunrisers Hyderabad on Saturday.