Rangers closed the gap on second placed Hearts to six points to set up a thrilling encounter next Sunday in the race for the second Champions League spot.
This match ended in an emphatic victory for the home team though they made heavy weather of it. Leading through an early Kris Boyd goal Rangers spurned chance after chance, but once Julien Rodriguez headed in their second with 20 minutes to go there was only going to be one winner.
Kilmarnock lost their keeper when Alan Combe was sent off for bringing down Peter Lovenkrands, with Dado Prso converting the penalty before Lovenkrands added a fourth with a 25-yard free-kick.
After Barry Ferguson and Chris Burke shot narrowly wide in the early minutes, Rangers took the lead. Prso raced into the box before cutting the ball back to Burke whose mis-hit shot landed perfectly at the feet of Boyd who shot home from six yards.
Burke cut in along the by-line before being thwarted at the near post by Combe. The Killie keeper again did well to hold Ferguson's 20-yard shot which came at him through a ruck of players.
Paul Di Giacomo volleyed straight at Ronald Waterreus early in the second half to give Rangers a fright, before Prso shot wide when he should have passed to Boyd.
Rangers added a second when Ferguson's deep free-kick found Sotirios Kyrgiakos beyond the back post and the Greek defender headed back across goal, allowing Rodriguez to rise above everybody to head home.
When Combe was ordered off for bringing down Lovenkrands who looked to have over-run the ball, it was all over for the visitors as Prso converted the spot-kick.
With James Fowler in goal, Rangers added a fourth when Lovenkrands lashed his free-kick into the top corner, though Fowler looked badly out of position.