text: In a scrappy first half, Joe Garner drew a save from Aberdeen keeper Joe Lewis and crossed for Martyn Waghorn to volley over.
  Aberdeen dominated after the break as Wes Foderingham saved from Kenny McLean and twice from striker Adam Rooney.
  But Kenny Miller's brace and Joe Dodoo's third earned Rangers the win.
  Aberdeen are still well placed to finish runners-up to Premiership champions Celtic, with nine points and a far superior goal difference separating them from Rangers with only six games remaining.
  Derek McInnes's men started the match as favourites and the early signs suggested they would live up to their billing as they pressed, fought and chased Rangers across every inch of the pitch.
  It was more a bruising battle than a beautiful game, though, and referee Kevin Clancy was flashing cards early, with Garner and Ryan Jack the first to be booked as they squared up to each other.
  For all its lack of free-flowing football, it was a very watchable spectacle. Jonny Hayes forced a low save from Foderingham at one end and Waghorn should have burst the net rather than volleying over after a sumptuous cross from Garner on the right.
  The visitors actually enjoyed the best chances in the early stages despite their lack of fluidity in midfield.
  Rangers manager Pedro Caixinha said beforehand that his players were entering hell with this trip but it looked more like limbo as both sides continued to cancel each other out. The Portuguese was also well aware that anything other than victory would see his side consigned to third at best.
  The Ibrox side have obvious frailties at the moment, especially in defence where youngsters are deputising for more experienced injured regulars, but they showed fight and spirit that would be rewarded later in the match.
  Young David Bates looked slow and ponderous at times although Myles Beerman at left-back was composed and calm when needed.
  When Aberdeen click, it is mostly down to the hard work of their impressive wide men and so it was in the second half as Niall McGinn and Hayes terrorised the Rangers full-backs.
  Hayes skipped past two on his way to the box but Graeme Shinnie's hooked shot was blocked by Foderingham. McGinn was at it on the other side and his trickery was feeding Rooney but his fellow Irishman could not convert despite several gilt-edged invitations.
  You could sense the tide turning though and Rangers were struggling to contain the waves of red battering their defences.
  For all their efforts though, few chances were seriously testing Foderingham.
  With 11 minutes remaining, veteran striker Miller scored his 10th goal in 40 appearances this season. Against the run of play, Waghorn created space for himself in the box and when his shot was saved, 37-year-old Miller lashed a fabulous effort high into the back of the net.
  Aberdeen had no time to compose themselves before Miller made it two when he skipped through a defence in disarray to slide neatly past Lewis and send the small band of Rangers fans wild.
  Substitute Dodoo played his part in that second goal and he slammed home a third to complete an incredible five minute turnaround that sent the Dons fans scurrying for the exits in disbelief.
  Those who remained in defiance almost witnessed a Miller hat-trick as he followed up on Dodoo's shot that came back off the crossbar but defender Andrew Considine spared further blushes as he cleared off the line.
  Match ends, Aberdeen 0, Rangers 3.
  Second Half ends, Aberdeen 0, Rangers 3.
  Attempt blocked. Kenny Miller (Rangers) right footed shot from the centre of the box is blocked.
  Joseph Dodoo (Rangers) hits the bar with a right footed shot from the centre of the box.
  Foul by Jonny Hayes (Aberdeen).
  Josh Windass (Rangers) wins a free kick in the attacking half.
  Kenny McLean (Aberdeen) wins a free kick on the right wing.
  Foul by Kenny Miller (Rangers).
  Foul by Graeme Shinnie (Aberdeen).
  Josh Windass (Rangers) wins a free kick in the defensive half.
  Attempt missed. Adam Rooney (Aberdeen) right footed shot from the centre of the box is close, but misses to the right.
  Jayden Stockley (Aberdeen) wins a free kick in the defensive half.
  Foul by David Bates (Rangers).
  Goal!  Aberdeen 0, Rangers 3. Joseph Dodoo (Rangers) right footed shot from the left side of the box to the bottom left corner.
  Substitution, Aberdeen. Jayden Stockley replaces Anthony O'Connor.
  Goal!  Aberdeen 0, Rangers 2. Kenny Miller (Rangers) right footed shot from the centre of the box to the bottom left corner. Assisted by Joseph Dodoo.
  Substitution, Rangers. Andy Halliday replaces Martyn Waghorn.
  Goal!  Aberdeen 0, Rangers 1. Kenny Miller (Rangers) right footed shot from the right side of the box to the high centre of the goal.
  Adam Rooney (Aberdeen) wins a free kick in the defensive half.
  Foul by James Tavernier (Rangers).
  Graeme Shinnie (Aberdeen) wins a free kick on the left wing.
  Foul by Jon Toral (Rangers).
  Corner,  Aberdeen. Conceded by Myles Beerman.
  Foul by Graeme Shinnie (Aberdeen).
  David Bates (Rangers) wins a free kick in the attacking half.
  Corner,  Aberdeen. Conceded by James Tavernier.
  Attempt missed. Andrew Considine (Aberdeen) header from the centre of the box is too high following a set piece situation.
  Substitution, Rangers. Joseph Dodoo replaces Joe Garner.
  Jonny Hayes (Aberdeen) wins a free kick in the defensive half.
  Foul by Jason Holt (Rangers).
  Shaleum Logan (Aberdeen) wins a free kick in the defensive half.
  Foul by Jason Holt (Rangers).
  Anthony O'Connor (Aberdeen) wins a free kick in the defensive half.
  Foul by Joe Garner (Rangers).
  Foul by Kenny McLean (Aberdeen).
  Joe Garner (Rangers) wins a free kick in the attacking half.
  Foul by Kenny McLean (Aberdeen).
  Jason Holt (Rangers) wins a free kick on the left wing.
  Corner,  Aberdeen. Conceded by Danny Wilson.
  Corner,  Aberdeen. Conceded by Wes Foderingham.
target: Rangers scored three times in five late second-half minutes to end second-place Aberdeen's run of 10 consecutive home wins and cut the gap to nine points.