St Mirren leapt into the top six after sealing a crucial home victory in the latest battle of the Saints.
It was a tale of two penalties in the first half, with Callum Hendry knocking St Johnstone in front at the second attempt after his initial spot-kick was forced to be re-taken.
Connor Ronan drew the Buddies level just before half-time, bagging his sixth goal in the stripes from the spot after Alex Greive was hauled down by Jamie McCart.
Jim Goodwin's side sprang from the traps in the second half, racing into the lead when Greive tapped home his first goal for the Paisley club at the back post.
And the Buddies held strong to bag all three points and move into the top half of the Premiership table, with their 2022 unbeaten run still firmly intact heading into Scottish Cup action this weekend.
Goodwin saw fit to change a winning formula, with Alex Gogic returning to the starting XI having missed the Buddies' 1-0 victory over Hibs due to the loanee being unable to face his parent club.
The combative midfielder replaced winger Jay Henderson, with playmaker Greg Kiltie starting the game in a more unfamiliar position on the right flank.
Former Buddie Cammy MacPherson made his first start against his former club, having completed a permanent move to McDiarmid Park last month.
The sides had yet to muster a goal between them in their previous two meetings this season, but St Mirren went close to breaking the deadlock within the opening two minutes.
Alex Greive turned his marker on the edge of the box before unleashing a shot that deflected wide as Goodwin's side sought to set the tone early.
Greg Kiltie was next to try his luck but he pulled his low shot well wide of the left post.
The Buddies were on top and Wigan loanee Jordan Jones was first to test Alexander Clark's reflexes, with the St Johnstone stopper reacting smartly to turn away the winger's curling effort.
It was one way traffic in Paisley and the home side should have opened the scoring when Jones produced a pin-point cross to find unmarked Kiltie on the edge of the six yard box. The diminutive midfielder could only direct his header harmlessly wide.
St Mirren keeper Jak Alnwick was a virtual spectator in the opening quarter of an hour, but he had to be on his toes to tip an impressive long-range Ali Crawford effort around the post.
The visitors started to grab a foothold in the game, in part thanks to some slack passing from the hosts, with Alnwick again called into action to palm away a low MacPherson shot.
St Mirren gifted the visitors the perfect chance to open the scoring when Marcus Fraser was caught the wrong side of Glenn Middleton, having already given the ball away himself on the right wing.
Callum Hendry slotted away from the spot, before being ordered to retake it as the ball was moving in the increasingly treacherous conditions.
That gave Alnwick a second bite of the cherry, but Hendry kept his cool to slot low into the bottom right-hand corner at the second attempt.
Despite their bright start it was the Buddies that were holding on for a half-time breather, with Alnwick pulling off an excellent low save to deny MacPherson a goal against his old club.
Despite the St Johnstone pressure at the other end St Mirren managed to pull one back on the stroke of the break.
Jamie McCart pulled down Alex Greive in the box, with Connor Ronan making no mistake as he sent Clark the wrong way to level the scores.
The Buddies had clearly warmed up at half-time as they quickly raced into the lead.
A superb Kiltie cross from the right wing found Greive at the back post, who tapped home the simplest of finishes to bag his first goal for the club since signing last month.
St Mirren were adamant they should have had another penalty when Kiltie appeared to be floored in the box, with referee David Dickinson this time waving away the protests.
Greive was holding the ball up brilliantly for the hosts as the lone striker, with St Johnstone repeatedly reduced to fouling the impressive New Zealand international to halt his progress.
Joe Shaughnessy almost made it three when he got on the end of Gogic's cutback, but the towering defender couldn't get enough on the shot and it was comfortably saved by Clark.
Goodwin turned to the experience of Ryan Flynn off the bench heading into the last 15 minutes as the hosts looked to hang on to all three points.
St Johnstone sub Charlie Gilmour slammed a low drive just wide of the post as the home fans held their breath with Alnwick at full stretch.
The Buddies saw out the final ten minutes fairly comfortably, moving into the top half of the table while maintaining their unbeaten run since the winter break ahead of the visit of Kelty Hearts to Paisley this weekend.