Substitute Kylian Mbappe was the catalyst for a dramatic France comeback as Iceland were denied a first victory over the reigning world champions.
Trailing 2-0 when the Paris St-Germain forward came on, France pulled one back when his shot was saved but flew in off Iceland defender Holmar Orn Eyjolfsson.
In the 90th minute, 19-year-old Mbappe fired in a penalty given for handball to level the friendly in Guingamp.
Iceland led through Birkir Bjarnason’s neat finish and Kari Arnason’s header.
The visitors had not won in their previous nine matches, including heavy defeats by Switzerland and Belgium in the Nations League in September.
They were also thumped 5-2 by France when they last met in the Euro 2016 quarter-finals, having not beaten their illustrious opponents in 12 previous meetings.
A historic victory looked on the cards as Iceland made their hosts pay for dominating possession without converting their chances.
However, the match turned on Mbappe’s introduction after 60 minutes as France extended their unbeaten run to 13 matches.