Match ends, Heart of Midlothian 1, Celtic 3.
Leigh Griffiths scored the goal that killed off Hearts at Tynecastle and took Celtic to within a millimetre of a fifth successive league title.
In a frenetic game, Colin Kazim-Richards opened the scoring for Celtic, who had an earlier goal wrongly ruled out for offside.
Abiola Dauda levelled early in the second half.
But slapstick defending allowed Patrick Roberts and Griffiths to net and Celtic ended the day nine points clear.
All but champions
Aberdeen beat Motherwell to temporarily suspend Celtic's official confirmation as Premiership champions.
Celtic, who host the Dons next week, hold a nine-point advantage with three games to play and a goal difference that is vastly superior to the Dons'. The Parkhead party planners can get to work now.
Ronny Deila's side had travelled to Tynecastle on the back of some ropey form but they had their edge with them this time.
They should have been ahead on 11 minutes when a Roberts shot was beaten away by Neil Alexander only for the breaking ball to be put away by Callum McGregor.
The midfielder was deemed to be offside when he scored. He wasn't. Within two minutes, Celtic bombarded Alexander again, the goalkeeper first saving from Roberts from close range and then tipping over a drive from distance by Griffiths.
Hearts had opted to start with Callum Paterson on the bench - and they missed him. They were also without Igor Rossi - they missed him, too. Juwon Oshaniwa is adept at hurling himself on to the floor and claiming assault to anybody who'll listen, but he's not so hot at the fundamental art of defending. John Souttar had a calamitous day. Hearts were awful at times at the back.
It was when Souttar, playing nervously at right-back for the opening half, failed to deal with a routine cross that Celtic struck. The ball drifted over Souttar and into Kazim-Richards, who composed himself in the six-yard box before placing his shot low past Alexander.
Only fitfully in that opening half did Hearts raise a gallop, Jamie Walker missing a fine chance after great set-up play by Arnaud Djoum.
Celtic created another big moment just before the break. Griffiths galloped clear for a one-on-one with Alexander. It was the kind of chance that Griffiths has gobbled up all season. Not this time. Alexander won the battle.
Hearts head coach Robbie Neilson had to make changes - and he did. Paterson appeared as did Dauda and their impact was immediate.
Djoum forced a great save from Craig Gordon as Hearts found themselves at last. Gordon saved again from Souttar. Just before the hour, though, Dauda ran hard at Celtic, brushing off all-comers before slamming his shot past Gordon.
Tynecastle came alive - and then it fell silent again. Roberts' goal was a gift from Alim Ozturk and Souttar, who were horrendously slack in defence and allowed the young Englishman through on Alexander. Roberts beat him comfortably.
Then, Souttar got suckered by Griffiths for the third, the striker ransacking the defender before slotting past Alexander.
- 24SouttarBooked at 85mins
- 4AugustynSubstituted forPatersonat 45'minutesBooked at 90mins
- 21CowieSubstituted forDaudaat 45'minutes
- 8BuabenBooked at 15minsSubstituted forNicholsonat 77'minutes
- 19Delgado Lloria
- 14Pallardo Gonzalez
- 27RobertsSubstituted forRogicat 69'minutes
- 8BrownBooked at 7minsSubstituted forCommonsat 90+3'minutes
- 13Kazim-RichardsBooked at 63mins
- 9GriffithsBooked at 84minsSubstituted forArmstrongat 86'minutes
- Alan Muir
- Shots on Target
Second Half ends, Heart of Midlothian 1, Celtic 3.
Colin Kazim-Richards (Celtic) wins a free kick in the defensive half.
Foul by Juwon Oshaniwa (Heart of Midlothian).
Substitution, Celtic. Kris Commons replaces Scott Brown because of an injury.
Callum Paterson (Heart of Midlothian) is shown the yellow card for a bad foul.
Foul by Callum Paterson (Heart of Midlothian).
Erik Sviatchenko (Celtic) wins a free kick in the attacking half.
Delay over. They are ready to continue.
Delay in match Kieran Tierney (Celtic) because of an injury.
Attempt missed. Arnaud Djoum (Heart of Midlothian) right footed shot from outside the box misses to the left.
Foul by Arnaud Djoum (Heart of Midlothian).
Scott Brown (Celtic) wins a free kick in the attacking half.
Substitution, Celtic. Stuart Armstrong replaces Leigh Griffiths.
Goal! Heart of Midlothian 1, Celtic 3. Leigh Griffiths (Celtic) left footed shot from the right side of the box to the bottom right corner.
John Souttar (Heart of Midlothian) is shown the yellow card.
Leigh Griffiths (Celtic) is shown the yellow card for a bad foul.
John Souttar (Heart of Midlothian) wins a free kick in the attacking half.
Foul by Leigh Griffiths (Celtic).
Delay over. They are ready to continue.