David Wotherspoon gave Saints the lead on the rebound from a Graham Cummins header that had hit the post.
Josh Magennis levelled before the break as Killie recovered.
Rory McKenzie's cross deflected off Brian Easton and deceived Alan Mannus to put Killie ahead and they held on for a maiden home win of the season.
The Rugby Park side draw level on points with seventh-place Saints, who must pick themselves up for a Scottish League Cup tie at Rangers on Tuesday.
Killie and Saints were chasing their first home and away wins of the campaign, respectively.
And after last week's morale-boosting Tannadice triumph over Dundee United, Gary Locke sent the same team out again, resisting the temptation to throw in new signing Conrad Balatoni.
Last week's hat-trick hero Steven MacLean was forced to sit out the match on the artificial surface with John Sutton plugging the gap up front for St Johnstone.
Kilmarnock have toiled at times on their own patch and have twice been bludgeoned at home this season. Dundee and Ross County both left Killie licking their wounds with 4-0 butcherings.
The match opened in quiet and even fashion with Saints striker Cummins claiming he had been hauled down just inside the box but referee Willie Collum was not interested.
The visitors did not have to wait long to get in front, however.
After excellent play by Liam Craig, Easton crossed for Cummins, whose header beat Jamie MacDonald and rebounded off the post allowing the on-hand Wotherspoon to slot home.
It was just Wotherspoon's second goal in more than two years.
Saints had been the better team and looked the more dangerous; despite Killie seeing more of the ball they struggled to break down their visitors' defence.
As the match drew closer to the interval, the hosts began to grab the game by the scruff of the neck.
Killie's best bet appeared to be in the wide areas and it was from there they would level proceedings.
Greg Kiltie exhibited what he can do with a superb cross for Magennis, who stretched his neck to loop a header past Mannus and equalise.
Killie had won just one of the previous 15 meetings with Saints and it was Magennis who scored both that day.
While Killie lost Daryl Westlake to injury in the first half, Darnell Fisher was withdrawn at the interval for Saints with Mark O'Hara and Steven Anderson the respective replacements.
MacDonald has been inspirational for Kilmarnock this season and one of Locke's worst nightmares became reality when an early second-half collision saw him succumb to the injury.
Ulsterman Conor Brennan replaced him at the end of a week that saw him recalled from a loan at Stranraer after fellow keeper Devlin McKay left for Derby County.
However, it was his opposite number Mannus who was left watching in horror as Killie turned the game on its head.
McKenzie's cross from the touchline nicked off Easton and looped over the Northern Irishman.
The St Johnstone supporters would look on aghast again moments later when Michael O'Halloran was denied by an excellent last-ditch challenge by Lee Ashcroft.
The hosts looked re-born from the toiling side of early-season and McKenzie almost made it three - Mannus saving at his feet when one-on-one and Kallum Higginbotham's effort on the rebound bouncing off the left-hand post.
Saints pushed for a leveller and Brennan held on to a late Wotherspoon deflected effort.
Match ends, Kilmarnock 2, St. Johnstone 1.
Second Half ends, Kilmarnock 2, St. Johnstone 1.
Corner,  St. Johnstone. Conceded by Stuart Findlay.
Attempt saved. Chris Millar (St. Johnstone) right footed shot from the right side of the box is saved in the centre of the goal.
Josh Magennis (Kilmarnock) is shown the yellow card for a bad foul.
Foul by Josh Magennis (Kilmarnock).
David Wotherspoon (St. Johnstone) wins a free kick in the attacking half.
Attempt saved. David Wotherspoon (St. Johnstone) right footed shot from the centre of the box is saved in the centre of the goal.
Craig Slater (Kilmarnock) wins a free kick in the attacking half.
Foul by Christopher Kane (St. Johnstone).
Attempt missed. Josh Magennis (Kilmarnock) right footed shot from the right side of the box is close, but misses to the left.
Attempt saved. Christopher Kane (St. Johnstone) header from the left side of the box is saved in the centre of the goal.
Foul by Kallum Higginbotham (Kilmarnock).
Christopher Kane (St. Johnstone) wins a free kick in the defensive half.
Corner,  St. Johnstone. Conceded by Stuart Findlay.
Attempt missed. Tope Obadeyi (Kilmarnock) left footed shot from the left side of the box is close, but misses to the right.
Attempt missed. Graham Cummins (St. Johnstone) header from the centre of the box is close, but misses to the right.
Substitution, Kilmarnock. Tope Obadeyi replaces Greg Kiltie.
Substitution, St. Johnstone. Christopher Kane replaces John Sutton.
Attempt missed. Michael O'Halloran (St. Johnstone) left footed shot from outside the box is close, but misses to the left.
Kallum Higginbotham (Kilmarnock) hits the left post with a right footed shot from the right side of the box.
Attempt blocked. Rory McKenzie (Kilmarnock) right footed shot from the centre of the box is blocked.
Substitution, St. Johnstone. Simon Lappin replaces Liam Craig.
Attempt missed. Michael O'Halloran (St. Johnstone) header from the centre of the box is close, but misses to the right.
Attempt saved. Kallum Higginbotham (Kilmarnock) right footed shot from outside the box is saved in the centre of the goal.
Josh Magennis (Kilmarnock) wins a free kick on the left wing.
Foul by David Wotherspoon (St. Johnstone).
Attempt missed. Greg Kiltie (Kilmarnock) right footed shot from outside the box is close, but misses to the left.
Own Goal by Brian Easton, St. Johnstone.  Kilmarnock 2, St. Johnstone 1.
Attempt saved. Josh Magennis (Kilmarnock) right footed shot from outside the box is saved in the bottom left corner.
Attempt missed. Rory McKenzie (Kilmarnock) right footed shot from the left side of the box is close, but misses to the right.
Substitution, Kilmarnock. Conor Brennan replaces Jamie MacDonald because of an injury.
Attempt blocked. Kevin McHattie (Kilmarnock) left footed shot from outside the box is blocked.
Rory McKenzie (Kilmarnock) wins a free kick in the defensive half.
Steven Anderson (St. Johnstone) is shown the yellow card for a bad foul.
Foul by Steven Anderson (St. Johnstone).
Attempt missed. Liam Craig (St. Johnstone) right footed shot from the centre of the box misses to the right.
Second Half begins Kilmarnock 1, St. Johnstone 1.
Substitution, St. Johnstone. Steven Anderson replaces Darnell Fisher because of an injury.
First Half ends, Kilmarnock 1, St. Johnstone 1.
Kilmarnock made it back-to-back wins for the first time since January as they came from behind to beat St Johnstone.