The visitors took a 42nd-minute lead through Adam Rooney’s penalty, the award disputed by Kilmarnock amid claims Momo Sissoko’s contact on Russell Duncan was minimal.
Kilmarnock dominated the start of the second half but Johnny Hayes caught Frazer Wright in possession and finished well to make it 2-0 in the 66th minute.
That strike against the run of play followed Kilmarnock being denied a spot-kick of their own when Graeme Shinnie appeared to handle inside the area.
Rui Miguel pulled a 75th-minute goal back to keep Kilmarnock in contention until the end with his first for the club, but Inverness held firm in the closing stages.
The result means Inverness remain undefeated away from home in the SPL this term.
Wright was restored to the Kilmarnock team after suspension after being red-carded in the home defeat to Dundee United, but returned to replace Harry Forrester from the side that also lost to Hibernian.
Veteran midfielder Duncan was recalled by Inverness after being left on the bench for last week’s 1-1 draw with St Johnstone, while a hamstring injury ruled out Gil Blumenshtein.
Johnny Hayes has impressed for Inverness this term from the right wing and was soon in the action, crossing for Duncan to fire just wide from the edge of the area.
Kilmarnock responded with a fluid move started by Alexei Eremenko, whose angled pass released Liam Kelly who then played in Jamie Hamill for a low shot well-saved by Ryan Esson.
The home team might have taken the lead on 16 minutes, but after Inverness failed to clear Eremenko’s corner, Conor Sammon miskicked badly when a shooting chance presented itself.
Esson needed to be alert again to punch the ball away to safety from the head of David Silva as the Kilmarnock midfielder tried to convert Liam Kelly’s high cross.
In what was developing into a disappointing half, neither side were able to keep possession with too many aimless balls upfield a feature of proceedings.
Grant Munro collected the first booking of the game on 40 minutes for hauling down Kelly, but the resulting free-kick from Eremenko drifted wide without troubling Esson.
The match needed something to bring it alive and it came with the controversial award of a penalty in the 42nd minute for a Sissoko challenge on Duncan.
Any contact looked minimal and the stadium erupted into jeers at referee Euan Norris’s decision to give a spot-kick, converted neatly by Rooney.
Sissoko continued his protests at the restart and was eventually yellow-carded for dissent, but his argument that Duncan had made a lot of very little looked sound.
Kilmarnock could have levelled before the break, but after good work from Eremenko and Hamill on the right, Manuel Pascali headed an inviting chance over.
Kilmarnock missed another fine opportunity a minute into the second half, Eremenko’s clever ball over the top putting Sammon clean through, but his lobbed effort bounced wide after defeating Esson.
An unimpressed Eremenko decided the best option was to go for goal himself with Kilmarnock’s next attempt, but while he struck his 25-yard shot powerfully it fizzed wide of the mark.
Kilmarnock looked as if they had a goal in them, but their finishing continued to be wasteful.
First Ben Gordon missed his kick from another Eremenko pass, then Craig Bryson screwed an effort wide when well-placed.
Eremenko won a free-kick on the left-hand edge of the penalty area in the 58th minute and took it himself, swerving his strike against the outside of the post.
Kilmarnock had a penalty claim rejected on the hour mark when Gordon’s low cross appeared to hit Graeme Shinnie’s hand, but nothing was given and the Inverness player stayed calm to clear Sammon’s follow-up goal attempt off the line.
Inverness had done little more than absorb pressure in the second half, but doubled their lead on 66 minutes when Hayes seized on some slack play from Wright to dart beyond him and finish confidently.
Kilmarnock were not done yet, however, and on 75 minutes they had a goal back, Forrester’s cross from the right met by a diving header by fellow substitute Miguel to spark hopes of a comeback.
Forrester, on-loan from Aston Villa, was looking a threat and it needed a smart block from Munro to deny him in the 79th minute as Inverness were again forced to retreat.