A closely fought tie came to life in the final 18 minutes as the Perth side struck twice in two minutes through Chris Kane, who flicked home a cross from substitute Glenn Middleton, who then doubled the lead with a stunning 25-yard free-kick.
An 85th minute header from Conor McCarthy pulled one back for the Paisley side and set up a tense finish but Callum Davidson’s men held on to reach their second final of the season, having lifted the Betfred Cup in February.
St Johnstone will now meet Hibs in the final on Saturday, May 22 after the Edinburgh side overcame Dundee United in Saturday’s other semi-final.
Here is how the two sets of Saints players rated ...
. GLASGOW, SCOTLAND - MAY 09: Glenn Middleton celebrates making it 2-0 St Johnstone with teammates during a Scottish Cup semi-final match between St Mirren and St Johnstone at Hampden Park, on May 09, 2021, in Glasgow, Scotland. (Photo by Alan Harvey / SNS Group)
Glenn Middleton celebrates making it 2-0 St Johnstone in the Scottish Cup semi-final win over St Mirren at Hampden. (Photo by Alan Harvey / SNS Group) Photo: Alan Harvey - SNS Group / SFA
. Jak Alnwick - 6
Made two impressive saves, including an excellent one to deny Shaun Rooney, but questions have to be asked of the second goal. Photo: Craig Foy - SNS Group
. Marcus Fraser - 7
Caught out a little at the opener but otherwise always seemed to be in the right areas. Photo: Craig Williamson - SNS Group
. Conor McCarthy - 8
Headed St Mirren back into the game and was solid at the heart of the defence. Photo: Craig Williamson - SNS Group
. Joe Shaughnessy - 6
Was heading for an 8 until he was partially at fault for both of St Johnstone's goals. Photo: Ross Parker - SNS Group
. Ilkay Durmus - 7
An up and down game. Had periods where he was heavily involved then dropped out for large spells. Photo: Craig Foy - SNS Group
. Ethan Erhahon - 8
Composed and accurate in possession and put in a strong shift off the ball as well. Photo: Craig Foy - SNS Group
. Jake Doyle-Hayes - 8
St Mirren's best player. Terrific at breaking up play and good use of the ball as well. Photo: Craig Williamson - SNS Group
. Jamie McGrath - 5
St Mirren needed a big game from their creative spark - other than the cross for the goal, they didn't get it. Photo: Craig Williamson - SNS Group
. Richard Tait - 6
Both his crosses and his attempts to attack the ball inside the penalty box always seemed a yard off. Photo: Craig Foy - SNS Group
. Kristian Dennis - 5
Looked lively in parts but another who dropped out of action for long spells. Photo: Craig Williamson - SNS Group
1. Jak Alnwick - 6
Made two impressive saves, including an excellent one to deny Shaun Rooney, but questions have to be asked of the second goal. Photo: Craig Foy - SNS Group
2. Marcus Fraser - 7
Caught out a little at the opener but otherwise always seemed to be in the right areas. Photo: Craig Williamson - SNS Group
3. Conor McCarthy - 8
Headed St Mirren back into the game and was solid at the heart of the defence. Photo: Craig Williamson - SNS Group
4. Joe Shaughnessy - 6
Was heading for an 8 until he was partially at fault for both of St Johnstone's goals. Photo: Ross Parker - SNS Group