Steven Anderson had looked likely to rescue a point for St Johnstone after the Buddies had led through Jason Naismith’s spectacular strike.
Naismith (28) took a pass from Sean Kelly and crashed an angled drive from 25 yards into the top corner beyond Alan Mannus.
Anderson responded for the home side on 68 minutes when he met a delivery from Scott Brown and powered his header into the roof of the net.
But Drury found space inside the penalty area to blast his shot past Mannus after Ross Caldwell had set him up for a spectacular finale.
A minute before the Buddies took the lead, Anderson came close for St Johnstone with a header from six yards which he planted just wide of the post.
And St Johnstone squandered a better opportunity 90 seconds after that opener when Michael O’Halloran was clean through on goal but shot wildly past the target.
St Johnstone did have the ball in the net five minutes before the break but Brian Graham was penalised for bundling St Mirren keeper Marian Kello over the line.
James McFadden came off the bench to make his debut for St Johnstone and came close to giving them the lead with a header on 71 minutes.
But Thomas Reilly drove a shot narrowly wide of the post two minutes later at the other end of the pitch.
St Johnstone almost snatched a point in stoppage time but Gary Miller hooked his effort wide of the right post from inside the box.