Rangers verloren meer terrein in de titelrace van de Schotse Premier League toen Caolan Boyd-Munce laat toesloeg en St Mirren een welverdiende 2-1 overwinning opleverde.
Philippe Clement koos de kant van Paisley en mikte op vijf opeenvolgende overwinningen om te voorkomen dat hij verder achterop zou raken in de titelrace van de Schotse Premier League.
Nadat ze Leon Balogun al vroeg door een blessure hadden verloren, nam hun avond een andere wending toen Butland tegen Greg Kiltie aan botste, terwijl de Buddies onmiddellijk een penalty kregen toegekend, waarbij de VAR de beslissing steunde. Oisin Smyth stapte op en maakte vanaf de stip geen fout.
Danilo en Nico Raskin werden na de pauze ingezet toen de intensiteit toenam en ze zorgden samen voor de gelijkmaker toen de Braziliaanse verdediger de bal binnensloeg nadat de poging van Raskin werd geblokkeerd.
Er was nog een wending toen Boyd-Munce vanuit de bal van Evan Mooney in de benedenhoek schoot, wat leidde tot wilde feesten toen St Mirren Rangers voor het eerst in 13 jaar versloeg.
Door het resultaat staat Rangers twaalf punten achter op leider Celtic, terwijl St Mirren opstijgt naar de vijfde plaats.
Nog meer ellende voor Rangers
De beginfase was een en al drukte voordat Balogun stopte met een blessure.
De eerste echte opmerkelijke doelpuntenactie kwam echter toen Butland nodeloos en niet overtuigend naar buiten snelde om Kiltie tegen de grond te duwen terwijl de Saints-speler de controle over een lange bal overnam.
Scheidsrechter David Dickinson wees onmiddellijk naar de stip en Smyth, die zaterdag een late vrije trap winnaar scoorde tegen Ross County, stuurde de ‚keeper de verkeerde kant op met een volbracht strafschop.
Clement en Vaclav Cerny kregen kort daarna een gele kaart van Dickinson omdat ze te lang hadden geklaagd over Marcus Fraser van St. Mirren die de run van Hamza Igamane zonder straf blokkeerde.
Saints-doelman Ellery Balcombe hoefde pas te redden toen hij vlak voor rust een tam schot van de Marokkaanse spits verzamelde.
Clement moest actie ondernemen en hij schakelde Raskin en Danilo in voor Barron en Bajrami en er was onmiddellijk verbetering.
Kapitein James Tavernier kwam dichtbij met een vrije trap vanaf 25 meter, waarna Balcombe een schot van Danilo redde voordat Cerny met een rechtervoet tegen een staander crashte.
Maar na een redding op de doellijn van Danilo werd Balcombe uiteindelijk van dichtbij verslagen door de invaller van Gers, terwijl het doelpunt van St Mirren belegerd bleef.
Igamane schoot een schot over na een combinatie met Cerny, die vervolgens een drive van afstand binnenbracht die net over de lat ging.
Aan de andere kant sprongen Saints-invaller Alex Iacovitti en Robin Propper uit een hoekschop en de bal kaatste terug van de eerste paal.
Het spel schommelde van begin tot eind.
Door een fout van Propper kon Olusanya foutloos racen, maar Raskin kwam terug om het gevaar af te wenden.
Onder de gebruikelijke overvloed aan wisselspelers vervingen de 17-jarige Callum Penman en Evan Mooney John en Olusanya, maar het was een andere vervanger, Boyd-Munce, die de wedstrijdwinnaar bleek in de derde van zes extra minuten.
Hij ontmoette een Mooney-pas en schoot vanaf 20 meter laag langs Butland om de Gers tot zinken te brengen.