St Mirren move into top half of the cinch Premiership after narrow win.
Alex Greive scored his first St Mirren goal to give Saints all the points.
The Perth Saints had taken the lead when Callum Hendry scored a penalty kick. Jim Goodwin's side were level before half-time thanks to a penalty from Connor Ronan - his sixth goal of the season. New Zealand forward Greive netted from close range to secure the points for the Paisley Saints.
The Buddies started well with three decent opportunities in the opening 10 minutes. Good footwork from Greive saw the striker drag the ball away from Liam Gordon before having his effort deflected wide. Two minutes later Greg Kiltie dragged a shot inches by the left-hand post. Jordan Jones - searching for his first St Mirren goal - was next to go close with St Johnstone goalkeeper Zander Clark getting two hands on his strike to turn it away.
The best of the chances came on 14 minutes when Jones' super delivery met the head of Kiltie just a few yards out. The midfielder was on the stretch and headed wide.
The visitors grew into the game after a good start from Jim Goodwin's men. Jak Alnwick was forced into his first save of the match as he had to be alert to palm Ali Crawford's long-range effort over on 15 minutes. The Buddies goalkeeper was made to work again five minutes later when he got two strong hands on Cammy MacPherson's curling effort from 20 yards.
St Johnstone took the lead just before the half-hour mark when Callum Hendry scored from the penalty spot. Saints could have no complaints about the decision as Marcus Fraser dragged Glenn Middleton down in the box. Hendry netted but was forced to re-take. He made no mistake with the second attempt either to put the Perth side ahead.
Ex-Saint MacPherson almost doubled the visitors' lead on 38 minutes when he forced a terrific save from Alnwick.
Saints were awarded their own penalty kick when Greive went down under the challenge from Jamie McCart. Ronan sent Clark the wrong way to score his third goal in four and draw the Buddies level.
Connor Ronan scored from the penalty spot to draw us level (Image: Allan Picken)
Jim Goodwin's side were ahead just four minutes into the second-half when Greive scored his first goal in the black and white. The New Zealander was on hand to sweep home Kiltie's ball to the far post to put the Saints in-front.
Alex Greive scores his first goal from St Mirren (Image: Allan Picken)
Charlie Gilmour fired just wide from 20 yards with 15 minutes remaining as St Johnstone searched for an equaliser. But it was the Paisley Saints who had the best chance to score the final goal of the game in injury time. A quick break saw Greive lay the ball to Kiltie who smashed high and wide from just inside the box.
Two goals were enough as Jim Goodwin's men made it four wins from five in the cinch Premiership and move into the top half of the table.
Full-Time: St Mirren 2-1 St Johnstone
St Mirren: Alnwick, Fraser, Shaughnessy (c), Dunne, Tait (Flynn 74), Power, Gogic, Ronan, Kiltie, Jones, Greive
Subs Not Used: Lyness, Urminsky, McCarthy, Millar, Erhahon, Erwin
St Johnstone: Clark, Sang (Brown 59), McCart (Butterfield 59), Cleary, Gordon, Gallacher (May 86), Davidson (Bair 59), MacPherson (Gilmour 65) Crawford, Middleton, Hendry
Subs Not Used: Parish, Northcott, Craig, Hector-Ingram
Referee: David Dickinson
Assistant Referee: Calum Spence
Assistant Referee: Colin Drummond
Fourth Official: Duncan Williams