St Johnstone strode into the top six of the Premiership thanks to the tightest of wins at Rugby Park.
With just eight minutes remaining a turn of pace up the right by Michael O’Halloran saw him burst into the box, only to fall to the floor after being challenged by Darryl Westlake.
Referee Don Robertson pointed to the spot and up stepped striker Brian Graham to drive the ball home for the only goal of the game to push the Perth team into the upper half of the table.
The match never quite caught fire on a freezing cold day but the early signs had been good, with just 40 seconds on the clock when Killie almost took the lead.
The ball was nodded on to Robbie Muirhead, who lashed a low shot goalwards only for Saints keeper Alan Mannus to save the day by brilliantly palming the shot away.
The hosts continued to dominate and Josh Magennis saw his strike from inside the box deflected over on nine minutes.
A freekick from James McFadden caused the Killie defence some problems on 14 minutes then a high ball just wouldn’t land for Steven Anderson as he loitered in the home box.
The Perth club had referee Robertson to thank for stopping Chris Chantler in his tracks as he broke towards goal after Lee Miller had been fouled. Play should have been waved on and, rather predictably, Killie made nothing of the setpiece.
On 23 minutes, David Wotherspoon’s cross from the left reached McFadden, whose volley was blocked.
After a lull in the play, Saints attacked again on 35 minutes through Simon Lappin, who blasted his shot just over the bar.
Saints came really close on 37 minutes when Wotherspoon ran forward before playing the ball into the box. It eventually reached McFadden but Killie keeper Craig Samson did superbly well to get down to save.
From the resultant corner, Wotherspoon’s ball over from the right was flicked by McFadden’s heel onto the bar. It was a sublime piece of skill that deserved a goal.
The second half was only four minutes old when there was an injury blow for Saints when McFadden fell to the floor.
It was well known that the Rugby Park artificial pitch didn’t suit him, given his injury history, and he was quickly replaced by Lee Croft. Killie then lost Sammy Clingan to injury, with Craig Slater coming on for him.
Tope Obadeyi ripped Saints open up the left on 65 minutes but instead of having a go at goal himself he squared and the chance was gone.
On 75 minutes, sub Croft flew down the right wing and when his cross came over Killie keeper Samson fluffed his catch but the ball spun away to safety.
What was a stuffy second period finally opened up for the hosts two minutes later when Obadeyi took the ball past Mannus and pulled it behind the inrushing Magennis. It finally reached Slater but he could only shoot over from the edge of the box.
Saints made the breakthrough on 82 minutes from the penalty spot.
A sweeping move up the right saw O’Halloran race clear, only to fall to the floor after being challenged by Westlake. It looked soft by ref Robertson decided it was a foul.
Up stepped Graham to give the visitors the lead with a drive right up the middle of the goal.
Killie sub Rory McKenzie’s shot was well saved by Mannus from close range on 87 minutes as the home team looked for a leveller but the visitors held on to move into the upper half of the table.
Attendance: 3,220.
Kilmarnock: Samson, Hamill, Connolly, Clingan (Slater 55), Miller (McKenzie 71), Obadeyi, Westlake, Chantler, Magennis, Pascali, Muirhead. Subs not used: Brennan, Barbour, Cairney, Ashcroft, O’Hara.
St Johnstone: Mannus, Mackay, Lappin, Wright, Anderson, Millar, Wotherspoon (Davidson 81), Graham, McFadden (Croft 49), Easton, O’Halloran. Subs not used: Banks, McDonald, Caddis, Miller, Brown.
Referee: Don Robertson.