By Kenny CrawfordBBC Sport Scotland at St Mirren Park
Steven Thompson's late winner ensured this all-Saints clash ended with the Buddies' first home win of the season.
Kenny McLean opened the scoring for St Mirren, but it was quickly cancelled out by Steven MacLean.
Paul McGowan and McLean twice put the Buddies ahead, with the visitors' Frazer Wright dismissed.
Nigel Hasselbaink and Rory Fallon took turns to reply, but Thompson had the final say and St Mirren go three games unbeaten.
That is seven points from nine for Danny Lennon's side and, while they remain in 10th place in the Scottish Premiership, the win was important given second-bottom Kilmarnock's victory over Ross County.
Had St Mirren captain Jim Goodwin not had a second-half penalty saved it could have been more comfortable.
For Tommy Wright's Perth charges, it is their first defeat in four matches and they lie seventh in the league as their early season inconsistency continues.
There was only the letter A of a difference between the first two goalscorers in Paisley and there was not much to separate their teams either.
Both sides looked to play neat and tidy football where possible and most of the goals were end products of intelligent play.
St Mirren's McGowan, playing in between middle and front, produced an intricate, short pass to find McLean, who duly finished in a composed manner into the bottom right corner past St Johnstone goalkeeper Alan Mannus.
Kenny McLean (left) scored twice for St Mirren against the visitors from Perth
But their lead was short-lived thanks to equally impressive approach play by St Johnstone.
Hasselbaink ran infield from the left and exchanged passes with Stevie May before the Dutchman's shot-come-cross was converted by the sliding MacLean for his fourth goal of the season.
On loan Newcastle midfielder Conor Newton launched more than one exciting counter-attack for the hosts, but the visitors almost took the lead before the break.
An excellent high diving save by Buddies goalkeeper Chris Dilo turned away Hasselbaink's curling effort. It was not the only time Frenchman Dilo looked assured between the sticks.
St Mirren went in front for the second time when Lee Mair's through ball allowed McGowan to side-foot softly and calmly past Mannus from 10 yards.
However, St Johnstone clawed themselves back into it again, mainly thanks to persistent running and skill from Chris Millar down the right, teeing up Hasselbaink to thump low into the net.
The pendulum looked to swing in the hosts' favour again when St Johnstone's Gary McDonald fouled McLean in the box and referee Willie Collum awarded a penalty. But Goodwin's kick was saved by Mannus.
That wasted opportunity was followed by a new one for St Mirren, though, as Wright saw red for a last-man tangle with McGowan and another spot-kick was given.
This time, McLean stepped up and converted it emphatically.
Refusing to give up, the Perth side equalised for the third time when former Aberdeen striker Fallon popped up at the back-post to tap in Stevie May's cross.
However, Thompson ensured Lennon's men had the last say, hooking in Darren McGregor's headed knock-down from a deep free-kick to seal a dramatic win.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.