Simeon Jackson missed an early penalty for the visitors and Chris Kane grabbed what proved to be the winner after 13 minutes. St Mirren’s Ethan Erhahon was sent off late on.
Tommy Wright's team climb to seventh in the table, four points outside the top six, while Oran Kearney's men remain bottom of the table.