Olafur Skulason was issued a straight red card in the second half but a resilient display from Lars Largerback's side secured a stalemate against the unconvincing visitors
Olafur Skulason pulled back Ivan Perisic when the winger was clean through on goal and was given his marching orders, but Lars Lagerback's side - roared on by a vociferous home support - ensured they remain very much in the tie against a Croatia team still low on confidence.
After an even first half, in which chances were at a premium, the game was turned on its head by the dismissal.
Croatia, under the guidance of coach Niko Kovac for the first time, began to enjoy the majority of possession but they were they unable to beat Hannes Halldorsson in the Iceland goal.
The 29-year-old made a string of second-half saves to deny Ivica Olic, Eduardo and Ivan Perisic to keep his side in the tie ahead of the second leg in Zagreb on Tuesday.
Iceland coach Lars Lagerback made two changes to the side that drew with Norway last month, while there were six new faces for Croatia as Eduardo partnered Mario Mandzukic in attack.
And the Brazilian-born forward almost broke the deadlock in the second minute.
The 30-year-old worked his way into the penalty area and, although his scuffed shot beat Halldorsson, it was cleared off the line by Ragnar Sigurdsson.
Alfred Finnbogason offered a prompt response from the hosts, controlling a cross from the left on his chest before seeing his shot well blocked by Vedran Corluka.
Kovac's side began to dominate possession, with Luka Modric pulling the strings, but clear-cut chances remained few and far between.
After wasting an opportunity midway through the half, Perisic brought the first save from Halldorsson shortly before the break, but his long-range effort was straightforward for the goalkeeper.
Iceland's chances were dealt a massive blow five minutes into the second half as Skulason saw red following a tussle with Perisic.
The Croatian got in front of his marker to try and get onto Rakitic's throughball but he was pulled down 20 yards from goal, and the defender was shown a straight red card.
Substitute Olic then forced a fine save from Halldorsson in the 55th minute as Croatia began to dominate. The striker slid in to meet an Eduardo cross but was denied by an excellent reflex stop.
Perisic had a final chance to win the game with seven minutes to play, but he wasted the opportunity as he volleyed wide of goal, with Modric's wild late drive from distance the only remaining chance the visitors could muster as both sides prepare for the second leg next week with everything to play for.