David Bates marked his last appearance at Ibrox with the only goal of the game as Rangers moved to within one point of second-place Aberdeen.
The defender, who is joining Hamburg in the summer, headed home Sean Goss’ cross with only five minutes remaining.
The late goal secured the Ibrox side’s first victory over Kilmarnock this season.
Jamie Murphy hit the crossbar in the first half, while Greg Kiltie came close for the visitors with a header.
Rangers were looking to capitalise on the feel-good factor generated by the confirmation on Friday that Steven Gerrard would start as the club’s new manager at the end of the season.
The former Liverpool and England captain was not at Ibrox to see Steve Clarke’s men frustrate the home side for long periods, with Jimmy Nicholl and Jonatan Johansson in charge of the first team following the departure last week of manager Graeme Murty.
The visitors arrived at Ibrox knowing that one point would secure at least a fifth-place finish this season, while the Rangers support were looking for a response from the home players following last week’s 5-0 loss to Old Firm rivals Celtic.
Murphy came close to ratcheting up the noise levels as he was left unmarked in space just outside Kilmarnock’s box after 11 minutes, but the winger shot just wide.
Aaron Tshibola was given the opportunity to heap fresh doubt into the minds of the home players as former Rangers striker Kris Boyd’s flick-on from a long Stephen O’Donnell throw dropped for him outside the box but the on-loan Aston Villa youngster skied his effort.
There was another warning for the home side as Eamonn Brophy flashed a ball across goal, a fraction ahead of the on-rushing Boyd.
It took the quick reactions of Jak Alnwick to keep Kilmarnock out just before the half-hour mark as Boyd hit a powerful free-kick that the Rangers goalkeeper did well to palm away, then he had to react smartly to foil Kirk Broadfoot on the rebound.
Rangers did finish the opening half on the front foot and only the woodwork denied them the interval lead as Murphy’s header from Andy Halliday’s whipped delivery from the left struck the crossbar.
Nicholl replaced Jason Cummings with Ross McCrorie at the interval and was nearly instantly rewarded when the teenager almost found the top corner within seconds of play resuming, before pushing another effort just wide soon after.
It looked like the hosts would have to settle for a point but with just five minutes remaining the impressive Bates – making his return after six weeks out injured – bundled home Goss’s deep cross to seal victory.
The visitors could have snatched a point at the end but Kiltie’s header flew just over.