A strong performance from the Dons kept Rangers at bay in the first half before an epic display after the break saw Aberdeen take all three points and restore the gap to fourth place to a five points.
After the 1-0 win at Dingwall nine days ago, Barry Robson made just the one enforced change to his side, Ylber Ramadani recovering from illness to replace the suspended Graeme Shinnie. Jay Gorter and Connor Barron were back on the bench instead of Joe Lewis and Jayden Richardson.
Rangers beat St Mirren 5-2 last weekend and named an unchanged team for their second trip to Pittodrie this term.
In blustery conditions, there was the expected rumbustious opening to the game but there was little time for anyone on the ball and the opening minutes were scrappy with neither side able to create anything of note early on.
The first real moment of action came in the 10th minute as Duk darted into the box. Souttar battled alongside him and was just able to get an important touch on the ball to take it away from the Aberdeen striker.
Leighton Clarkson produced a brilliant piece of defending in the 12th minute, an acrobatic header off the line from a Morelos volley, the Rangers man being set up by Sakala who beat Mattie Pollock to a cross.
Sakala was in on goal himself a couple of minutes later, skipping away from Pollock and into the box. One on one with Kelle Roos from 14 yards out, the Dutch goalkeeper spread himself well to make a big save. Pollock's tricky start to the game continued on the quarter hour when he collided with Angus MacDonald in the centre circle and needed treatment to a bloody nose before continuing.
Barisic came closest so far on 25 minutes. Running in from the Rangers left after a sustained spell of possession, he came onto a Tillman pass and stroked a shot against the outside of the post and behind. Aberdeen were struggling to get hold of the ball at this stage, Rangers dictating the game but unable to find a way through.
Pollock produced a brilliant piece of defending on 34 minutes as Raskin looked set to score. Pollock came sliding across to make a vital block from his shot from the edge of the six-yard box, keeping the game goalless. Cantwell was booked in the 38th minute for a late challenge on Pollock.
Aberdeen had a first real sight of goal after 40 minutes, Ramadani collecting a header from Bojan Miovski just inside the Rangers half. Surging towards goal, he drilled his shot from just inside the area, McGregor diving to his left to save at the near post.
As we headed into added time, a dreadful pass out across goal by Tavernier was straight at Miovski. He fed Ryan Duncan but from 20 yards out, he pulled his shot wide of goal.
HALF-TIME: ABERDEEN 0 RANGERS 0
From nowhere, the Dons were in front on 48 minutes. Liam Scales might have found the goal too late to win the goal of the season award, but maybe there should be a recount. Picking Morelos' pocket just inside the Rangers half, he went down the flank and lashed the ball in from 30 yards, watching as it sailed over McGregor and into the top corner. Was it meant as a cross? Who cares? Not quite McLeish 1982, but an invaluable strike to Rangers' heart nonetheless.
It was 2-0 on 56 minutes, Clarkson collecting a loose ball on the edge of the box and playing in a lovely cross that took out the Rangers defence. Miovski accelerated away from the centre-halves and flung himself into a bullet diving header back across goal and into the far corner. VAR took a long, long look at things but the goal was eventually allowed to stand.
Cantwell looked as if he might be halving the arrears just short of the hour but amid the massed red shirts, MacDonald made a vital block, more fine defending from the Dons.
Jonny Hayes was screaming for a penalty on 62 minutes as he darted into the box and tumbled to the floor, but there was nothing doing from VAR. It was a different Aberdeen in this second half though, hounding Rangers all over the park, chasing everything down, snapping away at everything and not giving the visitors a moment's peace. Matondo was Rangers' first change for Raskin on 64 minutes.
Tavernier worked a clever corner with Tillman a couple of minutes later, the Rangers skipper getting the ball back on the corner of the box, his curling shot going just over the bar. In stretching to watch it over the bar, Roos did himself some damage but he was soon able to continue after treatment for what looked like cramp.
Hayes was in the wars at a Rangers corner after 71 minutes, first getting a knock on the calf and then as he went down, getting another blow on the back of the head. Lengthy treatment followed before Hayes resumed.
Roos produced a terrific save on 74 minutes, a Rangers cross falling to Tavernier whose ferocious stab at goal looked set for the roof of the net before a big hand from the Dutchman pawed it away. Matondo was in behind a minute later, chasing away down the Rangers left. Shaping the ball across Roos, it clipped the outside of the post and went behind.
Duncan was next in the wars, running into Cantwell on the edge of the centre circle and taking a painful elbow as he did. Another spell of treatment followed before he got back in the action. Scales was booked in the 83rd minute for an attempted rugby tackle. From the free-kick, out wide on the right, Tillman flicked a header well wide.
Duncan had a chance to bury the game after 86 minutes, one on one with McGregor, albeit from a tight angle, but he blasted his shot into the goalkeeper's chest as he stood up at the near post. Rangers were on the break from there, Duk getting a booking for a late challenge. He was then replaced by Marley Watkins.
Rangers were pushing more players forward now and Matondo drifted inside in the 88th minute, pulling his shot wide of the target from 20 yards. Arfield then joined the action in place of Sakala, before eight minutes of added time was indicated.
The game might have been sealed by Watkins in the 91st minute, McCrorie and Ramadani marauding down the right and finding him at the back post, but he dragged his effort wide from six yards out.
Rangers pushed hard through the added time but Aberdeen stood firm - the defence were magnificent all afternoon - to crown a perfect second half in particular with all three points.
2 minutes added at the end of 1st half
8 minutes added at the end of 2nd half