Frazer Wright’s diving header gave Killie a deserved lead but Kenny Deuchar soon headed an equaliser a minute before the break.
St Johnstone took control of possession after the interval and Samuel volleyed home from 10 yards to put Kilmarnock in serious trouble.
Only a late equaliser for St Mirren at Falkirk prevented Kilmarnock from falling bottom of the SPL but Falkirk joined them on 29 points with the pair’s final-day meeting looking set to be a relegation decider.
Kilmarnock were undermined by nerves in the second half as they fell to their ninth defeat in 10 SPL games and now travel to Aberdeen on Wednesday on the back of an away goalscoring record of four goals in 18 matches.
They went into the game without the injured Scott Severin and Manuel Pascali with Garry Hay coming into midfield and former Middlesbrough winger Graeme Owens making his first start for the club.
Chris Maguire replaced Mark Burchill up front and Kilmarnock forced a series of corners in an opening spell disrupted by several lengthy stoppages for treatment, but could not test Saints keeper Graeme Smith.
Chris Millar curled wide on a rare St Johnstone attack but Killie were making good progress down the right and Jamie Hamill’s low cross was sliced just past his own near post by Danny Grainger.
Millar shot just over from 25 yards before Killie almost shot themselves in the foot amid a lack of communication in defence, but Deuchar headed wide as he ran in to intercept Simon Ford’s header back towards Cammy Bell.
Iain Brines waved away penalty claims when the ball appeared to hit Duberry’s arm after Kevin Kyle had headed on a long throw.
Kilmarnock were in danger of losing their initiative but Wright threw himself at the ball to divert it into the bottom corner after Kyle had headed it into the danger zone after an Owens corner.
The hosts failed to build on their lead though and immediately lost Craig Bryson to injury with James Fowler coming on. Samuel headed over from Grainger’s cross moments later and the visitors were level in the 44th minute.
Samuel kept the ball in play near the right corner flag and laid the ball back for Murray Davidson to curl a brilliant cross to the far post where Deuchar headed home from close range.
Tim Clancy headed wide at the back post from another Owens corner, Kilmarnock’s ninth of the first half, but they failed to maintain the pressure after the interval.
St Johnstone appealed strongly for a penalty when Craig went down as he cut in front of Liam Kelly to receive Jody Morris’ forward pass, with the Kilmarnock midfielder looking somewhat relieved when Brines waved play on.
The hosts were showing signs of nerves as St Johnstone dominated possession and Bell spilled Craig’s shot from just inside the box before recovering.
Conor Sammon replaced Owens but he soon wasted a promising opening when he fired across the face of goal as Kyle and Hamill screamed for the ball further back.
Kilmarnock fell behind in the 75th minute when Davidson won Millar’s cross and forced the ball into the path of Samuel, who took one touch before volleying the ball into the corner off the hands of Bell.
The hosts pushed forward but Hamill was booked for a penalty-box dive before Smith saved Kelly’s shot at the second attempt following Hamill’s inside ball.
But the pressure petered out as Saints harried Kilmarnock out of possession, and Deuchar threw himself in front of James Fowler’s shot deep in injury-time to prevent the hosts nicking a point.