Alexei Eremenko and Craig Slater scored penalties for Killie in a game which saw both sides have a player dismissed.
Kenny McLean was shown a straight red in the second half after reacting to a foul on one of his team-mates with Slater picking up a second yellow for over celebrating after scoring Kilmarnock’s second goal.
Gregg Wylde pulled a goal back for the home side, scoring a penalty of his own inside stoppage time, but it came too late for the struggling Buddies.
The first chance of the game fell to Eremenko who fired a shot from long range straight into the hands of Mark Ridgers after three minutes.
Kilmarnock enjoyed most of the possession during the first 20 minutes but nearly went a goal down when Stephen Mallan played a dangerous ball into the path of an unmarked Kenny McLean, but the Buddies midfielder was unable to get close enough to the delivery.
Lee Ashcroft went close after 29 minutes when he fired a shot towards the ‘keeper from outside the box after the ball fell to his feet from a stray corner.
The home side then had a shout for a penalty after a wild challenge from Mark Connolly brought down Lewis McLear inside the box, but the referee waved play on.
St Mirren went close again just before the break after a tremendous run from McLean, who played Sean Kelly through on goal, but the defender stumbled before he met the ball and sent his shot high over the bar.
After the restart, Kilmarnock nearly took the lead through Steven Naismith as the midfielder climbed high and headed an Eremenko free-kick narrowly over the bar.
The home side then won a free-kick just outside of the box after a bad tackle from Chris Chantler on Mclear, which Jim Goodwin fired into the side-netting.
But it was Kilmarnock who broke the deadlock after 53 minutes when Marc McAusland fouled Magennis inside the box and Eremenko converted from the penalty spot.
Naismith had another chance with his head 10 minutes later, rising well and flashing a header across the goal from another corner.
St Mirren went a man down after McLean was sent off for reacting to Ross Barbour’s foul on Kelly and Kilmarnock doubled their lead with less than 10 minutes remaining through another penalty, this time Slater stepping up and converting from the spot – seconds later he was dismissed by referee Willie Collum after celebrating the goal with the away fans.
The home side managed to pull a goal back late on when Manuel Pascali’s challenge on Goodwin in the box resulted in the third penalty of the game, which Wylde converted, but they were unable to force a late equaliser.