Neil Lennon's side started the game in the best possible fashion when they took the lead through a Kris Commons strike.
The lead lasted just until half time when Aberdeen equalised through Scott Vernon, who found the net from close range with a neat side-footed finish.
It got better for the visitors after the break when Josh Magennis slotted the ball low past Fraser Forster to give his side the advantage. Magennis added another shortly after as he poked Gavin Rae's shot past Forster.
Charlie Mulgew got a goal back for Celtic after a goalmouth scramble in the 68th minute and Gary Hooper levelled the scores as he slotted the ball home from inside the penalty area.
In the dying minutes, Giorgos Samaras scored a late winner for the home side to seal the three points.