Nani conjured his moments of magic twice inside the opening quarter following well-worked routines from corners, though poor defending also played its part in Iceland's downfall. And when veteran Helder Postiga made it 3-0 seconds before the interval, turning in an initial effort from Bruno Alves, it seemed the Portuguese, needing three points to move joint top of Group H on points with final day rivals Denmark, would romp to victory.
Instead, the home fires inexplicably went out for a while at Porto's Estadio Do Dragao as, having waltzed their way through the opening 45 minutes, the Portuguese briefly went to sleep at the back, conceding three minutes after the restart. Centre back Hallgrimur Jonasson pulled one back after Bruno Alves failed to cut out a loose ball and then had Portuguese hearts in their mouths as he promptly made the hosts pay for a second defensive lapse to make it 3-2 with 22 minutes left on the clock.
Safe in the knowledge that a draw would almost certainly cost them the group and a certain ticket to the finals, the Portuguese quickly snapped out of their torpor and Joao Moutinho, a local favourite with Porto, stormed forward to restore the two-goal advantage on 81 minutes. Malaga midfielder Eliseu set him up and Moutinho finished with aplomb inside the box.
And having put the Icelanders back in their box, Paulo Bento's side made the points safe when Eliseu netted a fifth at the death. There was still time for Gylfi Sigurdsson to net a third for the visitors from the penalty spot in time added on
The win leaves Portugal with 16 points from their seven games and should they draw on Tuesday they are in the driving seat on their head-to-head records having beaten Denmark at home. Denmark earlier swatted Cyprus 4-1 in Nicosia to keep them in with a shout.
Portugal began their campaign absymally, stunning their fans with an error-strewn 4-4 draw at home to ultra-minnows Cyprus to begin with and then slumping to Norway, who managed a first win over the Portuguese in four decades in Oslo.
But since then they have gone from strength and this was a fifth qualifying win on the roll for skipper Cristiano Ronaldo and company, who now must negotiate the final hurdle in Copenhagen if they are to assure automatic passage to next summer's finals in Poland and Ukraine.