Ilkay Durmus' first-half goal handed St Mirren their first league win over Aberdeen for eight years.
The Turkish midfielder's strike after 13 minutes proved to be the only goal of a 1-0 triumph played on a sodden surface, compounding manager Derek McInnes' woes following their Europa League first-leg defeat to Rijeka in midweek.
Aberdeen had made four changes from that game, handing a debut to Zak Vyner and a first start to Curtis Main. Sam Cosgrove missed out due to a hamstring injury.
St Mirren gave new loan signing Calum Waters his debut and a first start to Jon Obika, while the returning Kyle McAllister took his place on the bench.
Incessant rainfall throughout the day meant the pitch was very heavy but St Mirren coped the better with the conditions early on and went in front with the first chance of the game.
Paul McGinn slid a ball down the line for Kyle Magennis and the forward played in Durmus who finished confidently with his left foot.
He should have had a second goal just four minutes later. Magennis played the ball wide to the advancing Waters and his enticing cross was headed over by Durmus from around eight yards.
Aberdeen were struggling to make any headway and did not fashion a chance of note until the 32nd minute. Ryan Hedges' drive had plenty of power behind it but it was straight at Vaclav Hladky who held on well.
The visitors finally began to show greater attacking intent after the restart. Main, anonymous in the first half, turned and shot from the edge of the box but could not direct it on target, before a Lewis Ferguson header from Vyner's cross was tipped over by the goalkeeper.
Three minutes later came the first real moment of controversy of the match. As Hladky slid along his box to prevent a deflected shot going for a corner, he removed his hands temporarily to show the assistant the ball had not crossed the line.
Main saw that as his chance to nick in and roll the ball into the empty net only for it to be disallowed.
Aberdeen then appealed for a penalty when Hedges' shot struck Ryan Flynn on the arm but referee Steven McLean was not convinced.
Tony Andreu could have wrapped it up for Saints but somehow headed wide, before Niall McGinn hit a post for Aberdeen in the final minute.