The Scottish champions went some way to making amends for last week’s draw with Hearts and the reverse against Malmo in Tuesday’s Champions League qualifier at Ibrox.
Rangers will now hope this win provides a much-needed boost ahead of their trip to Sweden this coming week where they must overcome a 1-0 deficit to keep alive their hopes of a place in the group stages.
Dorin Goian made his Rangers debut from the start at McDiarmid Park after being granted a work permit and international clearance following his move from Palermo earlier in the week.
The defender replaced David Weir in the starting line-up after the skipper failed to recover from a hamstring injury picked up against Malmo.
Saints added Marcus Haber and Kevin Moon to the side after last week’s draw at Aberdeen but new signing Francisco Sandaza missed out as a result of lack of match fitness.
The home side carved out the first real chance when Callum Davidson tried his luck with a swerving effort that was pushed to safety by Rangers goalkeeper Allan McGregor.
At the other end, Steven Whittaker teed up the shot for Naismith in front of goal but his finish was weak and failed to trouble goalkeeper Peter Enckelman.
Saints still looked capable of grabbing the opener and were not too far away when Sasa Papac, playing in an unfamiliar left midfield role, lost possession and Rangers target Murray Davidson burst through on goal only to screw wide.
However, the Scottish champions could have been ahead when Jelavic met a Papac cross from the left and his bullet header looked netbound until Enckelman produced a great save to push wide.
The breakthrough came after 31 minutes when Rangers surged into the lead when they were handed a free-kick for a Murray Davidson foul on Jelavic.
Lee Wallace flighted the set-piece into the box where Naismith was waiting to send a firm header past the grasp of Enckelman and into the bottom corner.
Saints were out of the traps quickly after the break and Haber could have levelled when he turned and unleashed a ferocious shot that fizzed just past the post.
But it was Rangers who were celebrating again just five minutes after the restart when Naismith slotted into the path of Jelavic and the Croatian striker shrugged off Callum Davidson before dispatching a low, angled drive into the back of the net.
St Johnstone made a double change after an hour, with David Robertson and Cillian Sheridan withdrawn and Chris Millar and Carl Finnigan thrown into the action.
The home side could have had a claim for a penalty when Finnigan went to ground in the box under pressure from Maurice Edu but nothing was given by referee Alan Muir.
Rangers made their first switch when Lee McCulloch was replaced by Juan Manuel Ortiz with 15 minutes to go.
Their hosts could then have set up a tense finale had they been able to pull a goal back when Finnigan set up Jody Morris for the shot and he dragged just wide of the upright.
But Rangers held on for the win to ease the pressure after what had been a disappointing start to both their domestic and European campaigns.