A sensational volley from Danny Swanson condemned Scottish Premiership leaders Celtic to a shock 1-0 defeat by St Johnstone at Parkhead on Wednesday.
The Hoops headed in to their rearranged fixture hoping to open a formidable nine-point gap over Aberdeen - who they thrashed 4-0 on Sunday - at the top of the table.
A bright start saw the hosts come close through Anthony Stokes, Gary Mackay-Steven and Stuart Armstrong but St Johnstone grew in confidence as the match progressed and took the lead in the 54th minute thanks to a sumptuous Swanson strike from 25 yards.
Steven Anderson could have added another moments later as St Johnstone held off a late onslaught to hand Celtic their first domestic defeat of 2015 and end their run of eight straight victories in the league.
Celtic, buoyed by Sunday`s sublime performance against Aberdeen, had immediately put the visitors under pressure as Armstrong saw his fierce strike blocked before Stokes came close with a curling effort round the far post.
Alan Mannus then pulled off a double save to keep out Mackay-Steven`s curling shot that looked destined for the top corner before blocking Stokes on the rebound.
Dave Mackay strode forward and sent an effort straight at Craig Gordon for St Johnstone before Leigh Griffiths drilled a ferocious 30-yard shot just by the post at the other end.
St Johnstone, the only side to have breached the Celtic defence in the previous 11 games back in a 2-1 defeat in February, began to look more comfortable going forward and David Wotherspoon was next to test Craig Gordon with a shot from the edge of the box.
Armstrong remained a threat for Celtic and it took a fine fingertip save from Mannus to keep his long-range drive from sneaking in just before the break.
There were penalty claims as Virgil van Dijk and Mackay-Steven both had shots blocked in front of the St Johnstone goal but referee Calum Murray ignored their pleas.
Mubarak Wakaso replaced Adam Matthews at the break for a rare appearance and made an instant impact as he crossed for Mackay-Steven, who fired a shot into the turf and bouncing over the bar.
However, it was St Johnstone who were to take a surprise lead in the 54th minute after a superb strike from Swanson. The ball broke to the on-loan Coventry City midfielder 25 yards out and he sent a sizzling volley flying into the top right-hand corner of the net past the helpless Gordon.
St Johnstone were inches away from adding to their lead five minutes later when Steven Anderson sliced a volley just wide of the post from a corner.
Celtic pushed forward for an equaliser and Efe Ambrose saw his powerful header stopped on the line by Mannus after he connected with a Stefan Johansen corner.
The keeper then did well to deny substitute Nir Bitton and Armstrong as St Johnstone held on for the win that pushes the Perth side back into the top six.