Celtic continued their charge towards the Scottish Premier League title with a hard-fought victory over an unlucky Hearts side at Tynecastle.
Stilian Petrov celebrates the game's only goal
Stilian Petrov scored the game's crucial goal after 27 minutes, latching on to a pass from Henrik Larsson to slot the ball into the net.
The home side had plenty of the game, but failed to take their chances.
There were 10 bookings - five for each side - in a bruising encounter, but Celtic again came out on top.
Hearts almost took the lead within the opening minute - Dennis Wyness turned Neil Lennon beautifully before firing in a cross that Phil Stamp just failed to turn past Rab Douglas.
John Hartson was booked for an off-the-ball incident involving Andy Webster and then Douglas had to dive low to his right to hold a long-range Scott Severin drive.
Passions were clearly running high in the early stages and Douglas was struck on the head by a coin thrown from the crowd as he took a free kick.
Craig Gordon in the Hearts goal tasted his first piece of action after 13 minutes when Stan Varga fired a powerful free kick at goal, but the keeper was equal to it.
Gordon did well to keep Hartson's effort out after the Welshman had found himself free in the box only 10 yards out.
Henrik Larsson was denied a clear run on goal by a dreadful offside decision after 26 minutes, but that became an irrelevance moments later when the Swede capitalised on a slip by Andy Webster to release Petrov who drove the ball through the legs of Gordon and into the net.
Larsson got the better of the Hearts offside trap just after the half-hour mark, but on this occasion Gordon stood up well to block the striker's shot.
Petrov drives the ball past Craig Gordon
Paul Hartley missed an excellent opportunity to pull Hearts level six minutes before the break when he headed Kisnorbo's cross wide from eight yards out.
Chris Sutton went down under Steven Pressley's challenge inside the box at the beginning of the second half, but the Englishman's claims for a penalty fell on deaf ears.
Mark de Vries ought to have brought Hearts level after an hour, but he dragged a shot from the edge of the box past the far post.
At the other end, Petrov passed up a chance for a second goal, blasting the ball over the bar from the right side of the box.
Larsson also missed the target from a promising position on 67 minutes and then Sutton headed wide from close range.
Play swung from end to end as Hearts sought an equaliser, while Celtic looked for a killer second goal.
Gordon denied Celtic again with 88 minutes gone after Larsson played in substitute Craig Beattie, but the keeper was swiftly off his line to block the shot.
Hearts: Gordon, Maybury, Pressley, Webster, Severin, Stamp,
Kisnorbo, Wyness, Hartley (McKenna 86), De Vries,
Sloan (Weir 82).
Subs Not Used: Moilanen, MacFarlane, Neilson.
Booked: Sloan, De Vries, Stamp, Webster, Maybury.
Celtic: Douglas, McNamara, Balde, Pearson, Sutton,
Hartson (Beattie 81), Larsson, Agathe, Lennon, Petrov, Varga.
Subs Not Used: Hedman, Lambert, Maloney, Crainey.
Booked: Hartson, Petrov, Sutton, Pearson, Beattie.
Ref: K Clark