Rajasthan was out of contention if they lost, but overhauled Punjab's 185-4 with 186-3 in the 18th over.
To reach the playoffs next week, both teams need to win their last round-robin matches on Sunday and hope other results go their way.
In the chase, Ben Stokes (50) and Robin Uthappa (30) gave Rajasthan a flying start that was propelled by Sanju Samson (48), Steve Smith (31 not out) and Jos Buttler (22 not out).
Chris Gayle laid the platform for Punjab with 99; out to a yorker three balls from the end of the innings.
Gayle started his 63-ball innings in the second over, and was quickly in stride with captain Lokesh Rahul. They picked apart the bowlers, finding the fence in every over apart from two until the 15th over when Rahul was out for 46 off 41 balls when he mistimed a slower ball from Stokes.
At that point, Gayle was on 69 and joined by Nicholas Pooran, who hit three sixes before Gayle got back in groove.
Gayle passed 1,000 6s in Twenty20s before he was out to Jofra Archer in the last over for a second 99 in the IPL.
"Getting out on 99 is unfortunate, but I have been there and done that," Gayle said. "It was a good ball. This happens. Still enjoying it out there. Having fun. Still have to be hitting it well at the age of 41. Got to give thanks for that. To those who wanted a century, I am sorry I missed out today, but in my mind it is a century."
Stokes, after taking 2-32, dominated the start of the chase, scoring 50 of the first 60 runs before he was out in the sixth over.
Samson looked good for a half-century until he was run out from the non-striker's end to a direct hit, and Smith and Buttler had no problems cleaning up.
"We still need to do a bit to make the playoffs, and we need things to go our way," Smith said. "Having said that, if that happens, we are playing very good cricket."