Celtic 1-0 Hearts
A nervy Celtic edged three points clear of Rangers at the top of the Scottish Premier League thanks to a penalty from Alan Thompson.
It puts Celtic two goals ahead of their Old Firm rivals, who have the chance to close the gap and make up the goal difference when they play host to Kilmarnock on Sunday.
Celtic deserved their 29th-minute winner but rarely threatened after the break and almost paid for that at the other end as Hearts pressed forward.
Neil Lennon remained in the Celtic midfield despite suffering a well-publicised assault in a Glasgow street on Thursday night.
But Martin O'Neill made three changes from the side that returned to the top of the Scottish Premier League with victory over Motherwell in midweek.
Chris Sutton, Johan Mjallby and Joos Valgaeren returned from injury, with Jackie McNamara, Ulrik Laursen and Shaun Maloney standing down.
Austin McCann and Andy Webster were both suspended for Hearts after being sent off in the defeat at Kilmarnock last week, so in came Steven Boyack and Robbie Neilsen.
Celtic midfielder Stilian Petrov sent a 25-yard drive dipping just wide of the upright early on, but it was Hearts who were looking the more dangerous.
Kevin McKenna struck a powerful low shot from 12 yards that goalkeeper Javier Sanchez Broto did well to gather at the second attempt.
Celtic were stung into action and Henrik Larsson sent a glancing header wide before having a volley from 10 yards suberbly turned wide by Tepi Moilanen.
Celtic were made to work hard for the win
But the home side's increasing pressure paid off after 29 minutes.
Sutton collapsed in a heap inside the box after the slightest of nudges in the back by Steve Pressley and Thompson stepped up to drive the ball home from the penalty spot.
Thompson came close to scoring a second, but his low drive was turned wide by Moilanen.
Hearts made one change at the break with young Neil Janczyk replacing Phil Stamp, who had been struggling with a groin strain from the opening minutes.
The visitors threatened with a couple of long-range efforts that, unfortunately for them, went straight into the arms of Broto.
A Petrov drive was equally easily held by Moilanen at the other end.
Substitute Steve Simmons squandered a chance to equalise when he turned past his marker inside the box only to blast high and wide from 10 yards.
Didier Agathe came close to settling Celtic's nerves, but his drive from 16 yards struck the underside of the bar.
Celtic: Broto, Mjallby, Balde, Valgaeren, Agathe, Lennon,
Lambert, Petrov (McNamara 90), Thompson (Smith 71), Larsson,
Subs Not Used: Marshall, Maloney, Crainey.
Goal: Thompson 29 pen.
Hearts: Moilanen, Maybury, Pressley, McKenna (Simmons 62),
Neilson, Boyack, Stamp (Janczyk 45), Severin, Valois,
MacFarlane, Weir (Kirk 71).
Subs Not Used: McKenzie, Mahe.
Booked: Pressley, Maybury.
Referee: M McCurry