In an astonishing night in Paisley doubles by Buddies' midfielders Andy Dorman and Steven Thomson stunned the Hoops who were booed off the park by the travelling fans at the end.
The Parkhead side remain 10 points behind their Ibrox rivals who have two games in hand after their first league defeat at St Mirren in 21 years.
The home side went some way to making up for the disappointment of losing the Co-operative Insurance Cup final to nine-man Rangers at Hampden on Sunday as they romped to victory in style.
Their first home league win over Celtic since 1989 ended with their fans taunting their counterparts with a chant of "we want five" near the end.
Celtic had kept three clean sheets in a row for the first time in two years and travelled to Paisley with the chance to cut the gap behind Rangers at the top of the table to seven points and in the early stages there was little hint of the calamity that was to follow.
In the 13th minute, Buddies' striker Billy Mehmet got the break of the ball inside the Celtic box but his weak shot from 14 yards was easily saved by Lukasz Zaluska. At the other end seconds later, Parkhead right back Mark Wilson's cross from the right found Georgios Samaras, who beat Paul Gallacher at his near post but the ball bounced fortuitously back into the arms of the keeper.
In the 25th minute Hoops' midfielder Aiden McGeady, the visitors' most dangerous player, drove at the St Mirren defence and played Robbie Keane in with a clever pass.
Gallacher blocked the Irishman's low drive but the ball spun high in to the air and had to be cleared from under the bar by Saints defender Jack Ross under pressure from Paul McGowan.
Gallacher made another save from Keane but this time the Republic of Ireland star's shot was tame.
The visitors were in control but in the 38th minute, and against the run of play, the Paisley side took the lead, seconds after a penalty claim for a push on Dargo by Edson Braafheid had been ignored by Richmond.
When the ball came back into the centre the Hoops' defence failed to clear and it was Dorman, back in the side after being left on the bench for the Co-operative Insurance Cup final defeat to Rangers at Hampden, who fired past Zaluska from just inside the box.
Stunned Celtic retaliated and Samaras had a good effort from long range parried by Gallacher but the Saints defence cleared their lines before the interval whistle sounded.
Celtic survived another penalty claim moments in to the second half when Samaras looked to use his hand to control the ball in the box, but again it was on the weak side.
Moments after McGeady's cross evaded everyone in the St Mirren six-yard box, Mehmet then flashed a Ross cross over the bar.
But the pressure was slowly mounting on the Paisley side and after Gallacher flapped again at a cross, Buddies' midfielder Hugh Murray threw himself to block a Keane drive from close range.
But there was more drama in the 58th minute when Saints sensationally doubled their lead.
The foraging Dargo robbed Thompson down the left, played a one-two with Mehmet then shaped to shoot before setting up Steven Thomson who rifled low past Zaluska from just inside the box.
Celtic immediately brought on Fortune for Ki and the pressure on the Buddies' goal intensified although there remained a hint of St Mirren danger on the breakaway.
Desperation was creeping in to Celtic's play as the minutes ticked away and in the 76th minute striker number six, Morten Rasmussen, came on for Braafheid.
But in the 84th minute Dorman took advantage of more slack play in the Hoops' defence to slam number three past Zaluska.
Moments later, the Celtic keeper had to stretch to catch an attempted lob by Dargo as the Celtic backline threatened to dissolve, as they did when Thomson completed his brace three minutes later.