The Rangers climbed above Aberdeen into second place with their third win in eight weeks against the Pittodrie side.
Alfredo Morelos opened the scoring in the first half, converting James Tavernier’s cross for his 13th goal of the season.
Rangers were awarded a penalty after the break when Anthony O’Connor and Joe Lewis combined to foul Josh Windass.
Lewis was stretchered off and replaced by Danny Rogers before Tavernier converted from the spot.
The victory, following two wins in four days across November and December, moved Rangers above Aberdeen on goal difference, and 11 points behind leaders Celtic.