Match ends, Heart of Midlothian 1, Celtic 2.
Celtic debutant Scott Sinclair came off the bench to score an 81st-minute winner as the champions prevailed in a frenetic encounter at Tynecastle.
The visitors led via James Forrest before Tony Watt missed a close-range sitter for Hearts against his old club.
Celtic's advantage was cancelled out before the break, though, with a hugely controversial Jamie Walker penalty.
A game of 11 bookings looked to be heading for a draw before Sinclair turned in Leigh Griffiths' cross.
The winger, who only completed his £3.5m move from Aston Villa late on Saturday, ran to his new fans at the Celtic end of Tynecastle and was engulfed.
For the champions, it was a hard-fought but deserved winning start to their title defence.
Celtic went in front when Callum McGregor ran hard at the Hearts defence. It looked like he had been taken down in the box and that a penalty might be coming, but Forrest was on to the breaking ball quickly and swept it into far corner of Jack Hamilton's net.
Replays showed Celtic's Stuart Armstrong, who appeared to be offside, was right in front of the Hearts goalkeeper when Forrest netted, but no flag was forthcoming.
Midway through the half, Hearts had a cast-iron chance of an equaliser when Watt headed high and wide from point-blank range at the visitors' back post.
It was a calamitous miss for Hearts' new striker and one that lived with him for a period after. He soon got booked for kicking out at Scott Brown.
Hearts got their equaliser before half-time when Walker dived in the penalty area under a non-challenge from Kieran Tierney.
The only man in Tynecastle who saw contact was referee John Beaton, who made a terrible call. Walker took advantage of the present and beat Craig Gordon with ease.
There was a wonderful intensity - Hearts had seven players booked in all, Celtic four - and a huge noise-level, too. Before the opening half was out, Igor Rossi had to clear off his own line and then Gordon had to make two saves from Watt.
Both sides created bits and pieces - John Souttar did well to get a block on Moussa Dembele's close-range shot - but the longer it went on the more it looked like ending in a draw.
Sinclair came on just after the hour-mark and was having an anonymous debut until the dramatic end-game.
Griffiths did wonderfully well down the left side, accelerating away and playing a precise ball into Sinclair's path, who had a straightforward job of putting it away.
For Hearts, there was the realisation that for all their physicality, intensity and admirable work from Conor Sammon and Watt, they lack cutting edge up front.
For Sinclair, the debut of his dreams.
- 4RossiBooked at 50mins
- 2PatersonBooked at 55mins
- 7WalkerBooked at 36mins
- 10Sutchuin-DjoumBooked at 18mins
- 15CowieBooked at 76mins
- 32WattBooked at 29minsSubstituted forMuirheadat 61'minutes
- 18SammonBooked at 11minsSubstituted forBuabenat 78'minutes
- 1GordonBooked at 35mins
- 34O'ConnellSubstituted forRogicat 73'minutes
- 2K Touré
- 14ArmstrongSubstituted forSinclairat 61'minutesBooked at 81mins
- 8BrownBooked at 78mins
- 9GriffithsSubstituted forJankoat 83'minutes
- 10DembeleBooked at 90mins
- John Beaton
- Shots on Target
Second Half ends, Heart of Midlothian 1, Celtic 2.
Foul by Arnaud Djoum (Heart of Midlothian).
Scott Brown (Celtic) wins a free kick in the attacking half.
Attempt missed. James Forrest (Celtic) right footed shot from the right side of the box misses to the left.
Moussa Dembele (Celtic) is shown the yellow card.
Prince Buaben (Heart of Midlothian) wins a free kick in the attacking half.
Foul by Tomas Rogic (Celtic).
Foul by John Souttar (Heart of Midlothian).
Tomas Rogic (Celtic) wins a free kick in the attacking half.
Attempt saved. Don Cowie (Heart of Midlothian) right footed shot from outside the box is saved in the centre of the goal.
Hand ball by Mikael Lustig (Celtic).
Corner, Celtic. Conceded by John Souttar.
Attempt missed. Sam Nicholson (Heart of Midlothian) right footed shot from the left side of the box is just a bit too high.
Sam Nicholson (Heart of Midlothian) wins a free kick on the right wing.
Foul by James Forrest (Celtic).
Substitution, Celtic. Saidy Janko replaces Leigh Griffiths.
Foul by Arnaud Djoum (Heart of Midlothian).
Mikael Lustig (Celtic) wins a free kick in the defensive half.
Scott Sinclair (Celtic) is shown the yellow card for excessive celebration.