The Chelsea striker tucked home in the 66th minute of the Group H clash in Reykjavík after Antoine Griezmann had been kicked by Ari Skulason.
The result ensured France kept pace with Turkey at the top of the group while third-placed Iceland were cut six points adrift of the leaders.
France had the better chances of a tame first half although Griezmann was well off target with a free-kick.
Giroud felt France should have had a penalty for handball by Kari Arnason but nothing was given and the striker was booked for his protests.
Griezmann got himself into a good position as France broke but his shot was easily saved by Halldorsson.
The key moment did not come until after the hour when Griezmann charged into the area and was kicked in the thigh by Skulason.
Giroud confidently dispatched the spot-kick, sending Halldorsson the wrong way.
France had opportunities to make victory more comfortable in the latter stages.
Wissam Ben Yedder also got a sight of goal after controlling nicely and playing a one-two with Griezmann but Halldorsson saved with his feet.