Stilian Petrov restored Celtic's 11-point advantage at the top of the Scottish Premier League with the only goal of a bruising encounter at Tynecastle.
The Bulgarian midfield player shot home after 27 minutes of a competitive game which yielded ten bookings.
It was a difficult afternoon for Hearts and they will find themselves in trouble with the authorities after Celtic goalkeeper Robert Douglas was struck on the head by a coin thrown from a section of Hearts supporters early in the game.
It is likely to lead to a hefty fine for a club who are already in a perilous financial situation.
The afternoon started brightly enough for Hearts with Phil Stamp almost finding the net inside the opening minute after good work from Dennis Wyness but Douglas managed to claw the ball to safety.
Scott Severin also had a couple of decent efforts from distance which the Celtic goalkeeper had to watch closely.
But John Hartson should have given Celtic the lead after 18 minutes when Chris Sutton put him through but his finish was directed straight at Craig Gordon.
The breakthrough came nine minutes later when Henrik Larsson set up Petrov and he drilled a low shot through the legs of Gordon.
Larsson should have doubled Celtic's lead when he beat the offside trap to latch onto a through ball from Hartson, but Gordon stood up well to block his shot.
Paul Hartley missed an excellent chance to equalize five minutes from half time when he had a free header just eight yards out, but sent it wide after Patrick Kisnorbo had provided a measured cross.
Hearts were not giving up on the game and Mark de Vries squandered another great chance to equalize in the 61st minute when he had a clear view of goal from 16 yards but pulled his shot wide of target.
Celtic's response was immediate and they fashioned an opening for Petrov but his finish was well off target.
Larsson was next to fail to trouble Gordon after a flick from Sutton put him through but he shot across the face of the goal and wide.
But one goal was to prove sufficient for Celtic as they collected all three points.