The hosts now need to beat Dundee at Rugby Park on Saturday if they are to assure themselves of a top-half finish, Kris Boyd having earned them a point against the Buddies with his first Clydesdale Bank Premier League goal in three years.
Both sides had early chances but Steven Thompson fired over the bar for St Mirren and James Fowler than shot straight at Craig Samson at the other end.
Boyd looked dangerous throughout for the hosts and he headed over from a corner, and was then denied by the advancing Samson, while Mark O'Hara shot wide in between.
But St Mirren continued to pose a threat as well, and a low shot from Esmael Goncalves trickled just wide of the post.
Goncalves (36) then gave the visitors the lead, latching onto an excellent David van Zanten pass and then guiding a shot past Cameron Bell.
St Mirren were well on top at this point and twice went very close to doubling their advantage before the break, but Thompson put a great chance wide and Bell then pulled off a superb save to deny Goncalves.
And Kilmarnock levelled just two minutes into the second half, Borja Perez putting Boyd in on goal with a lofted pass, and the striker finding the target with a powerful low shot.
That goal changed the momentum of the match and it was now the hosts who looked the more dangerous, Perez having a shot blocked and then putting a fine volley just wide.
Garry Hay was next to chance his arm but his effort from distance was just too high and Boyd's header from a Fowler cross was saved by Samson.
The hosts were adamant that they should have had a late penalty when Fowler burst through on goal and then appeared to be barged into by Van Zanten, but the referee waved play on and St Mirren survived to earn a point.