Aberdeen booked a Scottish Cup semi-final with Celtic at Hampden, producing a 2-0 win over Rangers in their quarter-final replay at Ibrox.
Early goals in both halves, from Niall McGinn and Connor McLennan, and brilliant defending frustrated the Gers – who Derek McInnes’ men have defeated three times in Glasgow this season.
It will also be the Dons third time in the last four of the national trophy in three consecutive campaigns.
McInnes made a big call, throwing 17-year-old Dean Campbell in for his first Dons start after an impressive second half performance against Celtic at the weekend.
Meanwhile, Stevie May filled the void left by the suspended Sam Cosgrove – the Reds’ top scorer, with McGinn also coming in after a hip injury.
The other two to drop out were Greg Stewart and James Wilson.
Aberdeen got off to the perfect start. With three minutes played, a pretty harmless header forward from Dom Ball on the right was taken down by Glen Kamara, but the home player’s pass across his 18-yard line to James Tavernier was overhit. McGinn drove into the box and rolled the ball under Allan McGregor.
With 12 minutes played, it was clear the Dons were happy to let Rangers have the ball like they had in December (a 1-0 Premiership win) – and hit at speed on the break. Steven Gerrard’s men were out of sorts, although Andy Considine did whip the ball off of Alfredo Morelos’ foot as he shaped to shoot from 14 yards.
On 23 minutes, James Tavernier’s free-kick from a good position on the left was meat and drink for Joe Lewis.
Temperatures were high in the Govan ground as the Gers continued to offer little real threat in the final third. There was fury when, on 32 minutes, Daniel Candeias broke down the right flank only to smash his cross miles too long.
Morelos was then booked for diving in the box, as he had been at Pittodrie.
Moments later, McKenna – who was sent off for clashing with the Colombian in the last league meeting – was shown yellow after being judged to have pulled him back. Borna Barisic’s set-piece from the right was good, but Lewis just about held on to it at his near post.
On 37 minutes, ex-Reds skipper Ryan Jack thumped a low shot off the near post from a Barisic corner delivery.
Stevie May was booked soon after for diving in on Connor Goldson as he chased him down in the home side’s area.
As the half wound down, Tavernier sent a free-kick from 18 yards – given after Lewis Ferguson was booked, softly, for a push on Morelos – into the wall and over.
When the second half begun – after a delay for Rangers players to lift streamers thrown from the family stand off of the playing surface – it was full throttle once more.
McGinn was booked, again softly, for going in late on keeper McGregor.
On 58 minutes, after a flowing Rangers move involving Candeias, Tavernier and Kent, McKenna made a heroic sliding block as the Gers captain shot from close range.
Three minutes later, the Dons were in dreamland, Ferguson played the ball to May down the right and the striker cut the ball inside to McLennan. The youngster waited until he was eight yards out and hit a low cross-goal shot past McGregor into the far corner.
There was a sour note for the visitors on 66 minutes, Graeme Shinnie was booked for taking down Kent outside the Dons box and received a yellow, ruling the captain out of the semi-final.
Soon after, Morelos flashed a volley across goal when he could’ve dragged Rangers back into the contest.
Mikey Devlin and Stephen Gleeson were sent on to shore things up as the Reds racked up the bookings to see the game out, with May also replaced by Wilson.
On 85 minutes, Morelos – who by this point was rolling about at the slightest touch – produced a good diving save from Lewis in the match’s final real chance of note.
Aberdeen: Joe Lewis, Dom Ball, Andy Considine, Scott McKenna, Max Lowe, Dean Campbell, Lewis Ferguson, Graeme Shinnie, Connor McLennan, Niall McGinn, Stevie May.
Subs: Mikey Devlin (for McGinn 72), Stephen Gleeson (for Campbell 79), James Wilson (for May 82).
Subs not used: Tomas Cerny, Greg Halford, Ethan Ross, Greg Stewart.
Rangers: Allan McGregor, James Tavernier, Joe Worrall, Connor Goldson, Ryan Jack, Ryan Kent, Glen Kamara, Alfredo Morelos, Daniel Candeias, Borna Barisic, Scott Arfield.
Subs: Jermain Defoe, Kyle Lafferty (for Arfield, Candeias 66),
Subs not used: Andrew Firth, Steven Davis, Andy Halliday, Nikola Katic, Lassana Coulibaly.