Georgios Samaras' first domestic goal of the season put Celtic back on top of the Scottish Premier League after an entertaining victory over Hearts.
The visitors had goalkeeper Jamie MacDonald stretchered off after a collision with Charlie Mulgrew.
Replacement Peter Enckelman was slow to react as Samaras' low drive put Celtic ahead after 34 minutes.
Both sides had chances to add to the scoreline, but it was the Glasgow side who were always in control.
And Celtic's fifth straight victory - they are now unbeaten in their last six outings - lifted them two points clear of Hibernian with a game in hand.
Mulgrew continued in Celtic's midfield, where James Forrest replaced the injured Scott Brown, after his fine display in the 3-2 Champions League win over Spartak Moscow and forced a fine early block from MacDonald.
The versatile Scotland international played a one-two with Gary Hooper, who had a quiet 100th appearance for the club, on the edge of the penalty area but fired his low drive against the outrushing goalkeeper.
MacDonald's participation was to end in the 14th minute after bravely punching clear under a Mulgrew challenge from an Emilio Izaguirre cross.
Forrest just failed to turn Kris Commons' first-time effort into the net at the back post as MacDonald and Mulgrew were left motionless on the pitch and the signal went out for former St Johnstone goalkeeper Peter Enckelman to prepare for his debut from the bench.
Hearts' first threat came from an unlikely source as Darren Barr, pushed up into midfield as Andy Webster replaced Scott Robinson in the starting line-up, fired powerfully but straight at new England squad goalkeeper Fraser Forster.
Andrew Driver robbed a casual Kelvin Wilson and, when the winger played the ball into the path of Callum Paterson, the young striker poked it wide as he slid in from 10 yards.
Celtic responded and unmarked Moscow match-winner Samaras sent a side-footed volley on to the outside of the post from eight yards following a Commons cross.
Mulgrew had obviously not recovered fully from his earlier head collision and was replaced with Joe Ledley after 32 minutes.
However, that did not knock Celtic out of their stride and they immediately went ahead when Commons played Samaras through and the striker's low drive powered under the hapless Enckelman.
The goalkeeper was nearly caught out again by a quickly-taken Commons free-kick that curled wide of the far post.
Hearts' Ryan Stevenson twice teased the Celtic uprights from long range then Mehdi Taouil forced Forster to turn a thundering 20-yard drive over the crossbar.
Man-of-the-match Commons and Samaras both went close either side of the half-time break as Celtic looked to kill the game.
Hearts lost Paterson, replaced with John Sutton, after 52 minutes following a hefty challenge from behind by Wilson that somehow went unpenalised by referee Craig Thomson.
Commons and Izaguirre took turns to lead Ryan McGowan a merry dance, but their efforts from tight angles failed to find the net.
Samaras sent a header just over, while Forrest and Commons both tested the nervous Enckelman, but Celtic's midweek exertions appeared to be catching up on them.
However, as Celtic ran out of steam, Hearts were out of ideas and were unable to make the most of their best opportunity when Driver fired wide in stoppage time.
- 01 Forster
- 03 Izaguirre
- 04 Ambrose
- 06 Wilson Booked
- 21 Mulgrew (Ledley - 32' )
- 23 Lustig (Miku - 79' )
- 15 Commons
- 49 Forrest
- 67 Wanyama
- 09 Samaras
- 88 Hooper (Kayal - 70' )
- 24 Zaluska
- 16 Ledley
- 20 McCourt
- 33 Kayal
- 46 McGeouch
- 07 Miku
- 11 Nouioui
- 01 MacDonald (Enckelman - 14' )
- 03 Grainger
- 04 McGowan
- 05 Barr
- 06 Webster
- 26 Zaliukas Booked
- 33 Paterson (Sutton - 53' )
- 07 Stevenson
- 10 Taouil
- 11 Driver Booked
- 18 Novikovas (Robinson - 74' )
- 21 Enckelman
- 29 McHattie
- 19 McGowan
- 08 Robinson
- 09 Sutton
- 12 Smith
- 37 Carrick
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +2:46
Andrew Driver has an effort at goal from deep inside the area missing to the right of the target.90:00 +1:19
The ball is delivered by Nicolas Fedor Miku.90:00 +1:01
A cross is delivered by Ryan Stevenson, Efe Ambrose manages to make a clearance.87:00
Free kick awarded for a foul by Nicolas Fedor Miku on Andy Webster. Andy Webster restarts play with the free kick.86:15
The ball is swung over by Daniel Grainger, clearance made by Efe Ambrose.85:55
Andrew Driver sends in a cross, Beram Kayal manages to make a clearance.81:58
A cross is delivered by James Forrest.80:53
Outswinging corner taken by Ryan Stevenson.78:43
Kris Commons takes a corner.78:43 Substitution
Substitution Mikael Lustig leaves the field to be replaced by Nicolas Fedor Miku.78:25
Kris Commons produces a drilled right-footed shot from 20 yards. Save made by Peter Enckelman.77:13
Free kick awarded for an unfair challenge on Kris Commons by Ryan Stevenson. Free kick taken by Victor Wanyama.76:16
The ball is delivered by Kris Commons, clearance by Andy Webster.75:18
Scott Robinson fouled by Emilio Izaguirre, the ref awards a free kick. Scott Robinson restarts play with the free kick.74:00
The ball is sent over by Georgios Samaras, James Forrest takes a shot. Save by Peter Enckelman.73:12 Substitution
Substitution Arvydas Novikovas goes off and Scott Robinson comes on.72:48
Kris Commons delivers the ball, Georgios Samaras has a headed effort at goal from close range which goes wide of the left-hand post.72:23
Corner taken by Kris Commons from the left by-line, Andrew Driver makes a clearance.72:09
The ball is sent over by Emilio Izaguirre, save by Peter Enckelman.
The ball is swung over by James Forrest.70:27
Kris Commons produces a left-footed shot from close in which goes wide of the right-hand upright.69:03
Indirect free kick taken by Fraser Forster.69:03 Substitution
Substitution Beram Kayal on for Gary Hooper.69:03
The referee blows for offside.63:10
The ball is crossed by Emilio Izaguirre, Peter Enckelman makes a save.61:01
Centre by Kris Commons, Unfair challenge on Marius Zaliukas by Gary Hooper results in a free kick. Free kick taken by Peter Enckelman.60:44
Kris Commons takes a outswinging corner from the left by-line to the near post, Andrew Driver makes a clearance.60:35
Emilio Izaguirre delivers the ball, clearance made by Ryan McGowan.59:29
Outswinging corner taken by Ryan Stevenson, clearance made by Efe Ambrose.55:38
Kris Commons challenges Ryan McGowan unfairly and gives away a free kick. Free kick crossed by Daniel Grainger, clearance made by Efe Ambrose.53:58
Free kick awarded for an unfair challenge on Emilio Izaguirre by Ryan McGowan. Fraser Forster takes the direct free kick.52:44 Substitution
Substitution Callum Paterson leaves the field to be replaced by John Sutton.51:58
Victor Wanyama has an effort at goal from outside the penalty box which goes wide right of the target.51:21
Centre by Kris Commons, clearance made by Andrew Driver.49:37
Outswinging corner taken from the left by-line by Daniel Grainger.49:29
Kris Commons delivers the ball, Ryan McGowan manages to make a clearance.49:07
The ball is delivered by Kris Commons, clearance made by Marius Zaliukas.47:52
Mikael Lustig concedes a free kick for a foul on Callum Paterson. Marius Zaliukas takes the direct free kick.45:28
Mikael Lustig crosses the ball, Headed effort from inside the area by Georgios Samaras misses to the left of the target.45:01
The second half begins.45:00 +6:10 Half time
Half Time The referee calls an end to the first half.45:00 +5:49
Kris Commons produces a cross.45:00 +3:23
Strike comes in from Kris Commons from the free kick, Peter Enckelman makes a save.45:00 +3:23 Booking
Booking Marius Zaliukas receives a yellow card.45:00 +3:12
Marius Zaliukas gives away a free kick for an unfair challenge on James Forrest.45:00 +2:50
Free kick awarded for an unfair challenge on Gary Hooper by Andy Webster. Efe Ambrose takes the direct free kick.45:00 +2:34
Corner taken by Ryan Stevenson from the right by-line, Kelvin Wilson makes a clearance.45:00 +2:09
Mehdi Taouil takes a shot. Save made by Fraser Forster.45:00 +1:41
Emilio Izaguirre takes the direct free kick.45:00 +1:41 Booking
Booking The referee shows Andrew Driver a yellow card for unsporting behaviour.45:00 +1:34
Victor Wanyama fouled by Andrew Driver, the ref awards a free kick.44:45
Effort from the edge of the box by James Forrest goes wide of the left-hand upright.43:24
Unfair challenge on Mehdi Taouil by Georgios Samaras results in a free kick. Free kick taken by Marius Zaliukas.42:19
Ryan Stevenson produces a right-footed shot from outside the penalty box and misses right.40:45
Daniel Grainger takes a outswinging corner.40:32
Ryan Stevenson takes a shot. Efe Ambrose gets a block in.39:45
The ball is crossed by Kris Commons, clearance made by Daniel Grainger.39:28
Emilio Izaguirre sends in a cross, Andy Webster makes a clearance.38:15
Fraser Forster fouled by Ryan McGowan, the ref awards a free kick. Free kick taken by Fraser Forster.37:53
Corner taken right-footed by Ryan Stevenson from the right by-line, save made by Fraser Forster.37:45
Andrew Driver crosses the ball, blocked by Emilio Izaguirre.36:22
Unfair challenge on Kris Commons by Ryan McGowan results in a free kick. Kris Commons shoots direct from the free kick.33:37
Assist by Kris Commons.33:37 Goal scored
Goal! - Georgios Samaras - Celtic 1 - 0 Hearts Georgios Samaras grabs a goal from deep inside the penalty box to the bottom right corner of the goal. Celtic 1-0 Hearts.33:07
Ryan Stevenson gives away a free kick for an unfair challenge on James Forrest. Direct free kick taken by Victor Wanyama.32:49
The ball is delivered by Ryan McGowan, clearance made by Kelvin Wilson.31:05 Substitution
Substitution Joe Ledley on for Charlie Mulgrew.29:22
James Forrest produces a cross, free kick awarded for a foul by Kris Commons on Ryan McGowan. Free kick taken by Peter Enckelman.26:51
Foul by Kris Commons on Arvydas Novikovas, free kick awarded. Direct free kick taken by Daniel Grainger.26:14
Kris Commons sends in a cross, Effort from inside the area by Georgios Samaras hits the post.25:18
Callum Paterson fouled by Kris Commons, the ref awards a free kick. Free kick taken by Mehdi Taouil.24:47 Booking
Booking Kelvin Wilson booked.24:19
Callum Paterson has an effort at goal from deep inside the area missing to the left of the goal.23:20
Free kick awarded for a foul by Darren Barr on Kris Commons. Charlie Mulgrew crosses the ball from the free kick left-footed from right wing, save by Peter Enckelman.23:03
James Forrest crosses the ball, Marius Zaliukas makes a clearance.22:01
Ryan Stevenson crosses the ball, Kelvin Wilson manages to make a clearance.20:25
Kris Commons is caught offside. Peter Enckelman takes the indirect free kick.19:51
Ryan McGowan concedes a free kick for a foul on Georgios Samaras. Direct free kick taken by Georgios Samaras.19:14
The offside flag is raised against Kris Commons. Peter Enckelman restarts play with the free kick.18:47
Short corner taken by Kris Commons.17:29
Ryan McGowan gives away a free kick for an unfair challenge on Georgios Samaras. Free kick crossed left-footed by Kris Commons, save by Peter Enckelman.16:54
Emilio Izaguirre produces a cross, clearance made by Marius Zaliukas.15:13
Shot by Darren Barr from 25 yards. Save by Fraser Forster.13:17 Substitution
Substitution Jamie MacDonald goes off and Peter Enckelman comes on.9:05
James Forrest produces a right-footed shot from deep inside the penalty box which goes wide of the right-hand upright.8:43
A cross is delivered by Emilio Izaguirre, Jamie MacDonald makes a save.7:03
Outswinging corner taken left-footed by Kris Commons from the left by-line to the near post.6:48
Charlie Mulgrew takes a shot. Save by Jamie MacDonald.5:24
The ball is sent over by Mikael Lustig, Andy Webster manages to make a clearance.2:58
Free kick awarded for an unfair challenge on Ryan Stevenson by Victor Wanyama. Daniel Grainger fires a strike on goal direct from the free kick, save by Fraser Forster.2:36
Mikael Lustig fouled by Arvydas Novikovas, the ref awards a free kick. Mikael Lustig takes the direct free kick.1:04
Shot from a long way out by Kris Commons goes wide of the left-hand post.0:00
The ref blows the whistle to start the match.
Live data and text provided by our data suppliers