Les Irlandais ont ouvert le score sur corner par Troy Parrott (18e), qui a doublé la mise juste avant la pause (45e) sur un contre très mal négocié par la ligne arrière lusitanienne.
Symbole du désarroi de la Seleçao, son capitaine Cristiano Ronaldo a été exclu à l'heure de jeu pour un coup de coude dans le dos de Dara O'Shea.
Le quintuple Ballon d'or, qui n'avais jamais vu un carton jaune avec les couleurs de son pays, sera par conséquent suspendu au moins pour un match, et manquera donc la dernière rencontre qualificative prévue dimanche.
Le Portugal reste tout de même en tête du classement de ce groupe F avec 10 points et deux longueurs d'avance sur la Hongrie, qui avait battu l'Arménie à Erevan (1-0) dans l'autre match de la journée.
L'Irlande est troisième avec sept points.
Après trois victoires de rang face à chacun de ses adversaires, le Portugal avait concédé les premiers points le mois dernier, en étant tenu en échec par la Hongrie (2-2) à Lisbonne.
Une victoire face aux Hongrois, ou ce jeudi face à l'Irlande, aurait scellé la qualification du Portugal.
Mais les difficultés affichées en octobre ont été aggravées à Dublin par les absences du latéral Nuno Mendes, un joueur devenu prépondérant au sein de la Seleçao mais blessé avec son équipe du PSG, et du milieu offensif Bruno Fernandes, suspendu.
Le Portugal, sacré champion d'Europe en 2016, a disputé tous les grands tournois internationaux - Coupes du monde et d'Europe - depuis l'Euro 2000.
