Lewis Ferguson’s late penalty earned Aberdeen a dramatic draw with second-placed Celtic as Neil Lennon’s side went a third match without victory.
Ferguson won and scored the opener from the spot but Callum McGregor restored parity.
Ryan Hedges bundled in Aberdeen’s second only for Leigh Griffiths to rifle home and make it 2-2.
Ryan Christie’s penalty put Celtic ahead for the first time but Ferguson levelled in an enthralling finale.
The two sides meet again in next Sunday’s rearranged Scottish Cup semi-final from the 2019-20 campaign.
Celtic are three points behind leaders Rangers, who host Livingston later, while Aberdeen, who beat Hamilton in midweek, are a point behind third-placed Hibernian.
The wet and windy conditions did not lend themselves to flowing football and Aberdeen players claimed unsuccessfully after Ross McCrorie’s header connected with Diego Laxalt’s shoulder.
Olivier Ntcham flashed a long-range effort bouncing just past Aberdeen goalkeeper Joe Lewis’s left-hand post before the hosts’ Dylan McGeouch picked up a knock and was replaced by Connor McLennan.
Celtic were dominant in possession for most of the first half but were unable to convert that into chances, and when Ferguson was bundled over after getting the wrong side of Ntcham in the box, Aberdeen were given the chance to take a lead into half-time.
Scott Bain had replaced Vasilis Barkas in goal for Celtic and the Scotland international went right as Ferguson drove left to register Aberdeen’s 16th successful penalty in a row.
The home team would have been expecting a response from Celtic and it came early in the second period as McGregor, their captain with Scott Brown on the bench, took matters into his own hands.
The midfielder started the move from deep, slipped the ball to Tom Rogic, received the return pass and stepped away from his defender before finishing with a low drive.
The Dons lost Marley Watkins and Ryan Edmondson to knocks and Scott Wright and Sam Cosgrove came on to give the hosts new impetus in attack.
And it proved vital as Cosgrove held off Shane Duffy to turn and shoot in the box with Hedges on hand for the rebound after Bain blocked.
Brown and Griffiths took over from Ntcham and Albian Ajeti and Griffiths received Rogic’s pass inside the box for Celtic’s second equaliser, his rising shot flying past the helpless Lewis.
Celtic could smell victory and Mohamed Elyounoussi got to Kristoffer Ajer’s cross before Tommie Hoban only to be brought down, leaving Christie the task to stroke the ball in from 12 yards.
But the drama was not over as Hedges squared for Connor McLennan, who was tripped by McGregor, and Cosgrove fired against the bar only for referee Willie Collum to bring play back for the foul. Ferguson stepped up again and scored his third goal of the week.
Man of the match - Ryan Hedges
What did we learn?
Substitutions proved key at Pittodrie with Cosgrove making his first appearance of the season after a knee injury proving timely for Aberdeen’s second goal and in preparation for next week’s semi-final.
Griffiths again staked his claim with his second goal as a substitute this season which, in Odsonne Edouard’s absence, boosts Lennon.
Celtic had switched from three at the back to four during their midweek defeat by AC Milan and continued with the latter at Pittodrie.
But the defence continually struggled to cope with Aberdeen when Derek McInnes’s side got into the final third, as the loss of two penalties demonstrated. Lennon’s side have now conceded eight goals in three games, having lost to Rangers last weekend.
What did they say?
Aberdeen manager Derek McInnes: “I’m just glad we got something out of it because it was no more than we deserved. We said at half-time we know Celtic won’t lie down. I’m disappointed with a couple of the goals.
“The penalty decisions, the referee got them all right. Big decisions he got right. The players never gave it up and they deserve wholeheartedly their point.”
Celtic manager Neil Lennon: “I’m disappointed we haven’t won it. Defensively it’s poor from our point of view. We can’t except the goals that we’re giving away at the minute. It’s too sloppy.
“I’ll need to see the penalties again. I thought the referee had a very poor game - decision-making, being influenced by his assistants and some of the decisions were baffling. That’s not an excuse as to why we dropped points but it didn’t add to what was a cracking game of football. I thought he was poor for a referee of his level.”
Celtic visit Lille in their second Europa League group match on Thursday before meeting Aberdeen again at Hampden next weekend.
- 15McGeouchSubstituted forMcLennanat 26′minutes
- 40McCrorieBooked at 52mins
- 19FergusonBooked at 13mins
- 50WatkinsSubstituted forWrightat 56′minutes
- 32EdmondsonSubstituted forCosgroveat 58′minutes
- 42McGregorBooked at 9mins
- 21NtchamSubstituted forBrownat 70′minutes
- 18RogicSubstituted forTurnbullat 86′minutes
- 10AjetiSubstituted forGriffithsat 70′minutes
- William Collum
Match ends, Aberdeen 3, Celtic 3.
Second Half ends, Aberdeen 3, Celtic 3.
Attempt saved. Ryan Hedges (Aberdeen) left footed shot from the centre of the box is saved in the bottom right corner.
Attempt blocked. Lewis Ferguson (Aberdeen) right footed shot from outside the box is blocked. Assisted by Scott Wright.
Goal! Aberdeen 3, Celtic 3. Lewis Ferguson (Aberdeen) converts the penalty with a right footed shot to the bottom right corner.
Penalty conceded by Callum McGregor (Celtic) after a foul in the penalty area.
Penalty Aberdeen. Lewis Ferguson draws a foul in the penalty area.
Attempt missed. Sam Cosgrove (Aberdeen) left footed shot from outside the box is close, but misses to the right. Assisted by Ross McCrorie.
Substitution, Celtic. David Turnbull replaces Tomas Rogic.
Attempt missed. Lewis Ferguson (Aberdeen) right footed shot from outside the box is too high from a direct free kick.
Foul by Callum McGregor (Celtic).
Ryan Hedges (Aberdeen) wins a free kick in the attacking half.
Ryan Christie (Celtic) wins a free kick on the right wing.
Foul by Andrew Considine (Aberdeen).
Foul by Callum McGregor (Celtic).
Ryan Hedges (Aberdeen) wins a free kick on the left wing.
Foul by Shane Duffy (Celtic).
Scott Wright (Aberdeen) wins a free kick on the left wing.
Goal! Aberdeen 2, Celtic 3. Ryan Christie (Celtic) converts the penalty with a left footed shot to the bottom right corner.
Penalty Celtic. Mohamed Elyounoussi draws a foul in the penalty area.