If the end of Celtic’s unbeaten domestic run could have been foreseen, the manner of a defeat after 69 matches stunned Scottish football and raised eyebrows elsewhere. Heart of Midlothian, who had endured a dismal recent stretch against the Scottish champions, inflicted a 4-0 defeat on Brendan Rodgers’ team. Celtic were mauled in Edinburgh, with Rodgers perfectly happy to admit as much.

“I need to give credit to Hearts,” said Rodgers. “It’s a thoroughly deserved win; they were the better team. But I also want to congratulate my players. To have gone through 69 games and this to be their first defeat; of course it’s a sore one when you are beaten like that but they can hold their heads up. They have been absolutely amazing over those 18 months.”

Placed in further context, Celtic had scored in every Scottish fixture they had played since Rodgers took charge in the summer of 2016.

Hearts were much-changed at Tynecastle from their previous match but surged into a two-goal interval lead when the 16-year-old Harry Cochrane fired in his first goal for the Edinburgh club in the 26th minute before the former Rangers striker Kyle Lafferty added a second with a fine finish nine minutes later.

St Johnstone fight back for first league win at Rangers since 1971 Read more

David Milinkovic capitalised on more poor defending to grab a third goal three minutes after the restart before adding a 76th-minute penalty to put the finishing touches on a remarkable afternoon.

It was Brendan Rodgers’ first defeat by a Scottish club since taking over as the manager of Celtic in May 2016 – and it is one he is not likely to forget. His side, however, remain two points ahead of Aberdeen at the top, with a game in hand, while Hearts, following a fantastic if unexpected result, are unbeaten in six matches.

Despite their good form, the Hearts manager, Craig Levein, rang the changes, with Michael Smith, Jamie Brandon, Don Cowie, Ross Callachan, Cochrane, Milinkovic and Lafferty all restored to the starting XI.

The former Hibernian striker Leigh Griffiths was given his first Celtic start since November and Mikael Lustig, Jozo Simunovic and Kieran Tierney also returned for a match that began in typically frenetic fashion and hinted at the shock to come. Lafferty put himself about in the early stages and he and Callachan had efforts from distance that missed the target.

At the other end, Griffiths slipped when set up by James Forrest inside the Hearts penalty box, then fired a similar opportunity into the side-netting.

However, Hearts’ sheer enthusiasm continued to rattle Celtic again and when Tierney slipped at a Dedryck Boyata pass, Milinkovic took a Cowie pass, raced down the right and cut the ball back for Cochrane. The young midfielder then drilled a wonderful shot past the Celtic goalkeeper Craig Gordon from 16 yards, to the delight of three of the four Tynecastle stands.

Minutes later Gordon prevented the hosts’ doubling their lead when he forced a shot from Milinkovic over the bar for a corner that came to nothing – but Hearts soon had their second goal.

Milinkovic robbed Callum McGregor in and motored forward before releasing Lafferty, who, from the edge of the box and looking as if he had plenty to do, angled a low shot past Gordon and in off the far post.

Rodgers brought on the striker Moussa Dembélé and Stuart Armstrong for Tierney and Olivier Ntcham at the start of the second half but soon found themselves three down when Milinkovic took advantage of a Simunovic slip and rounded Gordon before knocking the ball into the net.

Celtic swarmed around the Hearts area and Griffiths drew a fine save from Jon McLaughlin with a powerful 22-yard drive.

In the 67th minute Hearts brought on another 16-year-old, Anthony McDonald, for Prince Buaben at the same time as Rodgers used his last by replacing the midfielder McGregor with Odsonne Edouard, before Cole Stockton took over from Lafferty.

However, it was all going wrong for Celtic. Gordon brought down Callachan inside the box after a counterattack by the home side – when the Hearts player had overrun the ball – and Milinkovic converted the spot-kick for his second goal since joining in the summer.

There was no way back for last season’s treble winners and their proud undefeated record ended.