Steyn claimed the wickets of dangerous Chris Gayle and his opening partner Tillakaratne Dilshan and Zaheer Khan as RCB failed to chase down the target of 133 at the Rajiv Gandhi International Stadium at Uppal.
The victory by the Chargers also meant that defending champions Chennai Super Kings go through the play-offs stage, along with table-toppers Delhi Daredevils, Kolkata Knight Riders and Mumbai Indians.
RCB collected 17 points from 16 matches, the same as that of Chennai but the latter made it to the play-offs stage on better net run rate. Delhi now play Kolkata in the first qualifier in Pune on May 22 while Chennai take on Mumbai in the eliminator in Bangalore on May 23.
The Chargers, who ended the tournament at eighth out of nine teams with nine pints from 16 matches, thus spoiled RCB's chances of a play-off berth just two days after knocking out Rajasthan Royals from the tournament.
Steyn was ably supported by Ashish Reddy (3/25), Amit Mishra (2/26) and Veer Pratap Singh (1/26) as RCB could score 123 for nine from their 20 overs. For RCB, captain Virat Kohli top-scored with a 40-ball 42 while Saurabh Tiwary and Gayle contributed 30 and 27 respectively. But RCB's run chase never got going as they lost wickets at the crucial stages. Gayle taking 24 runs from the second over bowled by Manpreet Gony was the only highlight of the RCB chase and all the batsmen other than Kohli, Gayle and Tiwary could not reach double digits.
It was a perfect revenge for the Chargers who were earlier beaten by the same opponents.
But, just as the RCB run chase began it looked like they would run away with the destructive Gayle hitting Gony two sixes and three fours from the second over.
It was, however, not Gayle's day today as he lost the duel with Steyn. Gayle tried to smash the ball through the off-side but took the bottom edge on to his stumps.
The South African fast bowler then picked up the wicket of Sri Lankan opener Tillakaratne Dilshan by getting him LBW for just four runs.
Mishra gave a double blow to the visitors in the 10th over by dismissing AB de Villiers (4) -- when compatriot J P Duminy took a splendid catch -- and then bowled Mayank Agarwal for just one run.
Kohli and left-hander Tiwary tried to steady the innings and put on 46 runs, but the former's innings of 42 came to an end in the 16th over when RCB required 30 runs off 25 balls.
It was medium-pacer Ashish Reddy who had the last laugh after Kohli had hit a massive six of his previous delivery. Kohli was dismissed the very next delivery when he tried to replicate the shot and the ball went straight at long-on for Gony to take a fine catch. Kohli hit two fours and as many sixes.
With 29 runs required for a win by RCB, Steyn removed Zaheer Khan in the 17th over before Veer Pratap Singh claimed the wicket of Tiwary who made 30 off 27 deliveries.
Fourteen runs were required of the last over and Ashish Reddy dismissed Vinay Kumar and Muttiah Muralitharan as RCB ended their innings at 123 for nine.
Earlier, South African allrounder JP Duminy cracked a strokeful 53-ball 74 as Deccan Chargers recovered from a shaky start to post a modest 132 for seven. Duminy smashed four fours and five sixes and stitched 71 runs in 46 balls with Parthiv Patel (16) to help Deccan recover from 30 for 3 to post a respectable total.
In pursuit of their playoff berth of the IPL-V, RCB bowlers put brakes on Chargers batsmen right from the word go and not only claimed their wickets at regular intervals but also succeeded in slowing the run-rate after stand-in skipper Virat Kohli won the toss and elected to field.
Deccan had a disastrous start with three of their batsmen -- Shikhar Dhawan (5), Akshath Reddy (7) and skipper Kumar Sangakkara (15) -- being dismissed within the first five overs at the Rajiv Gandhi International stadium at Uppal here.
Duminy and Sangakkara then tried to steady the innings with a 31-run partnership off 41 balls before the latter fall to compatriot Muttiah Muralitharan in the 12th over. Duminy then single-handedly took the attack to the opposition and sent the bowlers for a leather hunt to rack up runs in quick time.
The South African was particularly harsh on Murali in the 18th over, when he smashed the spinner for three sixes to pile up 20 runs. Duminy was finally dismissed by Zaheer Khan in the next over when he failed to get rid off a full toss and was caught by substitute KP Appanna.
R Vinay Kumar was the pick of the bowler, caliming three for 22, while Zaheer took two for 30. Murali and Prasanth Parameswaran claimed one wicket each.
Royal Challengers Bangalore innings:
CH Gayle b Steyn 27
TM Dilshan lbw b Steyn 4
V Kohli c Gony b Ashish Reddy 42
SS Tiwary c Sangakkara b Pratap Singh 30
AB de Villiers c Duminy b Mishra 4
MA Agarwal b Mishra 1
Z Khan b Steyn 0
R Vinay Kumar c Duminy b Ashish Reddy 7
HV Patel not out 5
M Muralitharan c Duminy b Ashish Reddy 0
P Parameswaran not out 0
Extras: (W-3) 3
TOTAL: (for 9 wickets in 20 overs) 123
Fall of wickets: 1-30, 2-36, 3-55, 4-57, 5-103, 6-104, 7-111, 8-120, 9-121
Bowling: DW Steyn 4-0-8-3, MS Gony 4-0-38-0, V Pratap Singh 4-0-26-1, A Mishra 4-0-26-2, A Ashish Reddy 4-0-25-3.
S Dhawan b Khan 5
P Reddy c de Villiers b Vinay 7
K Sangakkara c Vinay b Muralitharan 15
C White c Agarwal b Parameswaran 1
J Duminy c Appanna b Khan 74
P Patel c Gayle b Vinay 16
A Ashish Reddy b Vinay 4
D Steyn not out 0
Extras (B-1, LB-5, W-4) 10
Total (7 wickets; 20 overs) 132
Fall of wickets 1-6, 2-19, 3-20, 4-51, 5-122, 6-132, 7-132 Bowling: Z Khan 4-0-30-2, R Vinay Kumar 4-0-22-3, P Parameswaran 3-0-12-1, M Muralitharan 4-0-30-1, H Patel 4-0-26-0, T Dilshan 1-0-6-0.