Bengaluru: Navdeep Saini's fabulous penultimate over kept Royal Challengers Bangalore afloat in the competition as they beat Kings XI Punjab by 17 runs in the 42nd match of the Indian Premier League at Bengaluru on April 24.

AB de Villiers' unbeaten 82 off 44 balls took RCB to a healthy 202 for 4 and things could have gone awry with young Nicholas Pooran (46 off 28 balls) hitting five sixes at the rear before Saini sealed it in the 19th over. Kings XI Punjab finished at 185 for 7 as RCB are now on eight points with three games left.

Needing 30 off the last two, Saini (2/33), who is one of India's fastest bowlers produced a hostile over in which he removed the dangerous David Miller and Pooran but more importantly gave away only three runs.

Saini bowled fast and into the body of the batsmen, who couldn't really get going and his aggression became the defining factor in the end.

Defending 27 runs off the final over, Umesh Yadav (3/36) was better than the other night against CSK as he got a couple of wickets.

With four wins in the last five games, RCB will hope to win the remaining three and expect a few favourable results to make it to the play-offs as rank outsiders.

Kings XI Punjab started the chase in earnest as KL Rahul (42 off 27 balls) and Chris Gayle (23 off 10 balls) added 42 in less than four overs to set the ball rolling. Mayank Agarwal (35 off 21 balls) continued the flurry of fours during his 59-run stand with Rahul.

Rahul and Mayank were out in quick succession before Pooran and David Miller (24) took charge with some lusty hitting adding 68 off 8 overs as it boiled down to 30 off the final two overs. However, both Saini and Umesh did well to help RCB score two more points.

Earlier, AB de Villiers' scintillating half century and a 121-run stand with Marcus Stoinis propelled Royal Challengers Bangalore to 202 for four after being put into bat.

Sent into bat, De Villiers scored a brilliant unbeaten 82 off 44 balls with three fours and seven sixes, while Stoinis hammered 46 off 34 balls with two fours and three sixes.

In the last two overs, both Stoinis and De Villiers hammered 45 runs off Mohammad Shami and Hardus Viljoen.

After reaching his 50 off 35 balls, De Villiers, smashed Shami for three sixes, plundering 18 runs in the penultimate over.

In the last over, both Stoinis and De Villiers hammered 27 runs off Viljoen, which helped the hosts to race past the 200-run mark.

Put into bat, opener Parthiv (43 off 24 balls) and Virat Kohli gave a rollicking start getting 35 runs on board in 18 balls but the RCB captain was dismissed by Shami after he was caught by Mandeep Singh at extra cover.

Parthiv then got into the act for RCB, hitting Shami out of the park for three boundaries and a six in sixth over.

The left-hander also was severe on Ankit Rajpoot, hitting him for four boundaries and a six. The wicket-keeper batsman did not last long as he was caught by Ravinchandran Ashwin off Murugan Ashwin, after he had smashed seven 4s and two sixes.

Looking good at 71 for 2 in 38 balls, RCB lost two quick wickets of Moeen Ali (4) and Akshdeep Nath (3), leaving RCB at the crossroads at 81 for 4.

De Villiers brought up the 50-run partnership for the fifth wicket with Stoinis, with a mighty six over deep mid-wicket off Murugan.