Celtic suffered opening-day defeat for the first time in 24 years - and Ange Postecoglou's chastening start as manager continued - as Hearts made a winning Scottish Premiership return.
John Souttar scored with 90 seconds left at a raucous Tynecastle to secure the victory after Anthony Ralston's stunning solo strike had cancelled out Gary Mackay-Steven's opener.
A first win for Hearts over Celtic in three years condemned the Glasgow side to a second loss in three games after the midweek Champions League exit.
It means Postecoglou is still searching for a first win, with a Europa League third qualifying round tie in the Czech Republic against FK Jablonec on Thursday next up, before the visit of Dundee next Sunday.
However, after a good League Cup group stage showing, Robbie Neilson's Hearts have now made it five wins from five this season.
Not for a long time had Celtic began a league campaign in such disarray. Off the back of a trophy-less season, Wednesday's extra-time defeat by Danish league runners-up Midtjylland had opened new wounds.
They arrived in the capital bolstered by new signings Carl Starfelt and Kyogo Furuhashi, and a performance was needed to galvanise an anxious support.
But, less than 10 minutes in, the crisis headlines were already being written after a calamity in the visiting defence.
Josh Ginnelly bore down the right and got past Starfelt all too easily before feeding Liam Boyce. Nir Bitton took the ball away from the Hearts striker, but only knocked it into the path of an unmarked Mackay-Steven, who tapped in at the far post.
Celtic responded by dominating possession. The lively Odsonne Edouard headed into the hands of Craig Gordon, while Callum McGregor and David Turnbull also threatened. But despite hogging the ball, they couldn't unsettle the home side.
And, Hearts may well have opened up a two-goal lead before half-time had Craig Halkett or Michael Smith not put efforts from close range over the bar.
Celtic's nerves were evident. Starfelt was struggling to settle on his debut and Hearts' boisterous home support sensed it. But just as Celtic wobbled, a touch of quality levelled the score.
Ralston stepped past Andy Halliday, skipped past the lunges of two more maroon shirts, before guiding a composed left foot finish past Gordon.
It lit up what was already a fascinating game, and both sides still believed victory could be theirs.
Celtic soon had the ball in the net again, though Liel Abada's celebrations were cut short by the assistant's flag for offside against Greg Taylor, who had crossed for the Israeli.
Scott Bain had to claw away Souttar's header as Hearts went close, before Gordon punched clear substitute Ryan Christie's effort.
Japanese forward Furuhashi made his entrance from the bench for Celtic, but it was Hearts who were finishing the stronger of the two, and they got their reward when Souttar rose highest at a free-kick to head home for Hearts.
Yet still the action wasn't over, as Gordon - released by Celtic last summer - made two stunning late saves.
First James Forrest drove into the box but his near-post effort was blocked at point-blank range, then from the resultant corner, the Scotland goalkeeper tipped away Starfelt's header acrobatically.
Man of the match - Beni Baningime
Hearts debutant Baningime looked assured in midfield, impressing defensivelyWhat did we learn?
Celtic had little trouble getting their foot on the ball, but the struggles of last season have yet to be shaken off as they found it hard going in the final third while defensively they have yet to form a solid unit.
Rarely had a side won the Scottish Championship under such a cloud, but Hearts put last season's fan demonstrations behind them with a performance that suggests they are unlikely to be anywhere near a relegation battle this season.
What's next?
Celtic travel to the Czech Republic to face Jablonec on Thursday (16:45 BST) before hosting Dundee on Sunday, while Hearts are next in action on Saturday at St Mirren in the Scottish Premiership (15:00).
Player of the match
BaningimeBeni Baningime
Heart of Midlothian
Squad number6Player nameBaningime
Squad number4Player nameSouttar
Squad number1Player nameGordon
Squad number11Player nameMackay-Steven
Squad number17Player nameCochrane
Squad number30Player nameGinnelly
Squad number10Player nameBoyce
Squad number5Player nameHaring
Squad number19Player nameHalkett
Squad number2Player nameSmith
Squad number16Player nameHalliday
Squad number3Player nameKingsley
Squad number21Player nameGnanduillet
Celtic
Squad number42Player nameMcGregor
Squad number56Player nameRalston
Squad number49Player nameForrest
Squad number11Player nameAbada
Squad number4Player nameStarfelt
Squad number12Player nameSoro
Squad number29Player nameBain
Squad number14Player nameTurnbull
Squad number3Player nameTaylor
Squad number6Player nameBitton
Squad number22Player nameEdouard
Squad number17Player nameChristie
Squad number8Player nameFuruhashi
Squad number18Player nameRogic
Line-ups
Hearts
Formation 3-4-3
1Gordon
4Souttar19Halkett3Kingsley
2Smith6Baningime16Halliday17Cochrane
30Ginnelly10Boyce11Mackay-Steven
1Gordon4Souttar19Halkett3Kingsley2Smith6Baningime16Halliday17Cochrane30GinnellySubstituted forGnanduilletat 77'minutes10Boyce11Mackay-StevenSubstituted forHaringat 68'minutesSubstitutes
5Haring8McEneff13Stewart21Gnanduillet22Henderson27Smith28PollockCeltic
Formation 4-2-3-1
29Bain
56Ralston6Bitton4Starfelt3Taylor
12Soro42McGregor
11Abada14Turnbull49Forrest
22Edouard
29Bain56Ralston6Bitton4Starfelt3Taylor12SoroSubstituted forRogicat 90'minutes42McGregor11AbadaSubstituted forFuruhashiat 79'minutes14TurnbullSubstituted forChristieat 79'minutes49Forrest22EdouardSubstitutes
1Barkas8Furuhashi10Ajeti17Christie18Rogic54Montgomery57WelshReferee:Bobby MaddenAttendance:5,272Live Text
Match ends, Heart of Midlothian 2, Celtic 1.
Second Half ends, Heart of Midlothian 2, Celtic 1.
Corner, Celtic. Conceded by Peter Haring.
Attempt saved. Carl Starfelt (Celtic) header from the centre of the box is saved in the bottom right corner. Assisted by Ryan Christie with a cross.
Corner, Celtic. Conceded by Craig Gordon.
Attempt saved. James Forrest (Celtic) left footed shot from the centre of the box is saved in the centre of the goal. Assisted by Odsonne Edouard.
Foul by Anthony Ralston (Celtic).
Liam Boyce (Heart of Midlothian) wins a free kick in the defensive half.
Substitution, Celtic. Tomas Rogic replaces Ismaila Soro.
Goal! Heart of Midlothian 2, Celtic 1. John Souttar (Heart of Midlothian) header from the centre of the box to the bottom left corner. Assisted by Michael Smith with a cross following a set piece situation.
Foul by Ismaila Soro (Celtic).
Peter Haring (Heart of Midlothian) wins a free kick on the left wing.
Foul by Callum McGregor (Celtic).
Peter Haring (Heart of Midlothian) wins a free kick in the defensive half.
Attempt missed. Craig Halkett (Heart of Midlothian) header from the centre of the box is close, but misses to the right. Assisted by Michael Smith with a cross following a corner.
Corner, Heart of Midlothian. Conceded by Greg Taylor.
Attempt blocked. Liam Boyce (Heart of Midlothian) header from the centre of the box is blocked. Assisted by Andrew Halliday with a cross.
Foul by Kyogo Furuhashi (Celtic).
Beni Baningime (Heart of Midlothian) wins a free kick on the right wing.
Attempt saved. Ryan Christie (Celtic) left footed shot from the right side of the box is saved in the centre of the goal. Assisted by Odsonne Edouard.