Saints recorded a fifth consecutive top-flight win for the first time since 1971.
Murray Davidson’s scrappy first-half opener was enough to earn the McDiarmid Park outfit another three points in a sequence that was sparked by an unlikely victory over champions Celtic in mid-September.
The win should have been more comfortable and would have been had Nigel Hasselbaink not failed to find an open net in a second half in which Kilmarnock could not spark a comeback.
With just a minute remaining, the persistent Hasselbaink – who had passed up another one on one with Kilmarnock keeper Cammy Bell – finally scored the second the Perth men deserved.
And, with the game now beyond them, Kilmarnock netted what proved to be no more than a consolation in injury-time courtesy of James Fowler’s deflected strike.
Saints’ victory matches a string of wins last secured under the legendary Willie Ormond 41 years ago.
Home manager Steven Lomas made one change to his starting line-up, with striker Rowan Vine being drafted back in following a three-match suspension, and his decision to retain Hasselbaink in his team proved key in the end.
The opening 11 minutes were characterised by two moments involving the luckless youngster.
Playing on the right flank of the home midfield, the Dutchman dallied on the ball too long on the edge of his own penalty area in the seventh minute, allowing Gary Harkins to rob him of possession.
He would have been relieved, however, when Harkins’ shot was blocked and Liam Kelly’s follow-up effort was deflected wide for a fruitless corner. Five minutes later, Hasselbaink showed his worth at the other end of the pitch as he held off two defenders in chasing a long kick out from keeper Alan Mannus but his ball across the six-yard box was just too early for the supporting Davidson.
The home side were in command at this point and defender Steven Anderson should have done better in the 15th minute than screw a free header wide of target from a tempting Liam Craig free-kick.
Craig was again involved four minutes later when he saw his goal-bound shot blocked by team-mate Gregory Tade.
In the 29th minute, the Perth men made their dominance count as they took the lead.
Again Craig was at the heart of it, whipping in an in-swinging corner from the right after the returning Bell had cheaply given away the set-piece when he dived over the ball.
Anderson bulleted a header towards goal from the delivery and, after Bell had parried the powerful effort, Davidson pounced in the resulting scramble to force the ball over the line.
With their tails up, Hasselbaink again did damage down the left flank on the break, beating Rory McKeown with skill and pace but his eventual cutback lacked precision and wasted all his good work.
Kilmarnock were by no means out of proceedings at this point and came within a whisker of the equaliser seven minutes from the break.
Hasselbaink gave away a free-kick 25 yards from goal and former St Johnstone loan striker Cillian Sheridan curled a fantastic effort that crashed back off Mannus’s right-hand post.
Kilmarnock reshuffled at the break, pushing skipper Manuel Pascali in front of defence in a bid to spark a comeback.
But the visitors had Bell to thank for keeping them in the match in the 53rd minute as the keeper dived brilliantly to his right to save Davidson’s left-foot drive from the edge of the area.
The home midfielder was first to react to the loose ball but could not direct his follow-up shot on target from a tight angle.
Five minutes later, Bell proved a reliable last line of defence again as he blocked low to his right after Vine had slipped in Hasselbaink.
As Kilmarnock failed to clear their lines, Craig’s pass gave Vine a clear sight of goal but the striker curled his 12-yard shot inches over from the left side of the goal.
A second goal for St Johnstone would have killed the game in favour of the home side and they should have got it in the 61st minute when Hasselbaink was guilty of a glaring miss.
Tade sprang the offside trap and drew Bell before squaring for the supporting Hasselbaink, but the 21-year-old only succeeded in allowing the ball to ricochet off his shin and wide of an open goal.
He had the opportunity to make amends on another break just seconds later but, with Tade available to his left, could not squeeze his shot past Bell. The feeling remained that the Perth men may go on to rue their misses and Sheridan stung the palms of Mannus with a powerful shot midway through the second period as Kilmarnock continued to seek a way back into the match.
It was eventually finished as a contest in the closing seconds of regulation time when Tade slipped a pass through for Hasselbaink to face Bell yet again and this time he managed to get his shot past the keeper. Fowler’s deflected strike in injury-time gave Kilmarnock slim hope of a draw but time ran out on the Ayrshire men.