After a dominant start from the visitors, Aberdeen exploded into life when Jonny Hayes fired home an unstoppable drive from 25 yards.
Simon Church marked his debut with a goal when he bundled home from close range to make it 2-0 at Pittodrie.
Leigh Griffiths pulled one back in injury time, but the Dons held on to cut the gap on Celtic to three points.
It was a sensational atmosphere in this top-of-the-table clash, which saw striker Church make his debut for the hosts with Efe Ambrose taking a seat on the bench.
The early exchanges were combative and committed but restricted to long-range efforts that did not threaten an opener.
Celtic grew in confidence going forward during the first half, and there were strong claims for a penalty as Shay Logan was thought to have handled the ball.
The contest then erupted and it was Aberdeen who decisively struck.
Hayes gathered a clearance about 25 yards from goal and hit a fabulous strike which crept inside goalkeeper Craig Gordon's post.
As Celtic manager Ronny Deila looked on in horror, things got worse for his side as Aberdeen roared further ahead.
Hayes sent in a corner, Kenny McLean nodded on and debutant Church kneed the ball home from close range to send Pittodrie wild.
McLean came close to a third just before half-time with a fierce drive from outside the box which Gordon diverted.
Deila's half-time response was to hand a debut to Colin Kazim-Richards at the expense of Stuart Armstrong.
However, it was Aberdeen who should have gone further ahead.
Defensive indecision presented Church with a glorious chance to seal it, but he somehow screwed the ball wide from close range.
Celtic struggled to create until Scott Brown hooked the ball across for Griffiths, who looked certain to bury a header back across goal, but it inched past the far post.
Niall McGinn then fired from distance and Gordon cleared the ball as it looked to be heading just wide.
Then Griffiths cut inside onto his left foot and fired past Scott Brown to pull one back for Celtic in stoppage time, but there was not enough time left to search for an equaliser.
Aberdeen breathed new life into the Premiership title race with a deserved win against league leaders Celtic.