Simeon Jackson’s weak Panenka-style penalty effort after eight minutes was easily saved by goalkeeper Zander Clark in what was St Mirren’s best chance of the match.
St Johnstone took full advantage of that let-off with Chris Kane’s goal earning the Perth side a first victory since January to keep alive their chances of making the top half of the table come the league split.
St Mirren’s miserable night was rounded off when Ethan Erhahon was shown a straight red card two minutes from time for a lunge on Richard Foster.
The home side made four changes from the team that lost to Livingston, with Clark restored to the starting line-up after recovering from a hamstring injury.
St Mirren, in contrast, were unchanged from their 1-0 defeat by Kilmarnock last time out, so Duckens Nazon had to settle for a place on the bench following his goalscoring exploits for Haiti on Sunday.
Both goalkeepers were called into action early in the game. Kane’s spectacular volley was touched over the crossbar by Vaclav Hladky for a corner before St Mirren were awarded a penalty when Jason Kerr was adjudged to have shoved Brad Lyons as they contested Paul McGinn’s cross.
It was a great chance for the visitors to take an early lead but Jackson failed to make the most of it, scuffing his attempted chipped kick and allowing Clark to make an easy save with his legs.
St Mirren’s frustration was then compounded when they fell behind just five minutes later. Again, they paid the price for an individual error with Mateo Muzek weak with a headed back pass allowing Kane the chance to pounce and slot home a low finish.
The game died down after that frantic start, although a mix-up between Clark and Ross Callachan almost gave St Mirren the opportunity to get back into the game, only for the St Johnstone midfielder to thump the ball away from right in front of goal as Jackson waited to pounce.
St Mirren were brighter after the break but failed to greatly trouble Clark, with Jackson firing a shot high over the crossbar and Mihai Popescu doing similar, before Erhahon saw red late on.