Et annet sted, Belgia kastet Thibaut Courtois kapteinslinje som ser Estland gjennom en Romelu Lukaku doblingen i Tallinn og Moldova kom fra to mål for å overvelde Polen.
Portugal så ut til å gå mot en svak målløs uavgjort i Reykjavik inntil Willum Thor Willumsson ble utvist sent.
Ronaldo slet i store deler av kampen, men belønnet manager Roberto Martinez sin selvtillit da han dro hjem etter Goncalo Inacios knockdown i det 89. minutt.
«Det var et vakkert manus (for Ronaldo). Det var en utrolig feiring, den første mannlige spilleren i verdens fotballhistorie som vant 200 landskamper,» sa Martinez til uefa.com.
den gamle ekte Madrid Og Manchester United stjernens rekord 123. landskampmål ble først utelukket for offside før det ble tillatt av VAR.
«For meg er det en utrolig prestasjon, det er utrolig,» sa Ronaldo, 38. «Og selvfølgelig er det enda mer spesielt å score vinnermålet.»
Portugal er fortsatt to poeng foran Slovakia på toppen av gruppe J etter en fjerde seier på rad.
Slovakia, som blir Portugals neste motstander i september, vant 1-0 borte mot Liechtenstein for å holde seg ubeseiret.
Luxembourg økte sitt usannsynlige bud på en første storturnering med en strålende 2-0 borteseier over Bosnia-Hercegovina og endte på tredjeplass, bare tre poeng bak Slovakia.
De to beste fra hver gruppe kvalifiserer seg automatisk til neste års finale innen Tyskland.
– Stjernekaptein Lukaku –
Den belgiske målvakten Courtois sa at han var «overrasket» trener Domenico Tedesco fortalte på en pressekonferanse at han hadde nektet å reise til Estland etter å ha blitt oversett for vikarkapteinjobben forrige uke.
Tedesco hadde ønsket å gi Lukaku armbindet for lørdagens 1-1 uavgjort mot Østerrike og gi Courtois æren i Tallinn, med den faste kapteinen Kevin De Bruyne fraværende.
Men med Courtois i stedet hjemme, ble Lukaku igjen utnevnt til skipper og svarte med å score to ganger i en 3-0-suksess som hjalp Belgia til å bli nummer to i gruppe F.
Østerrike forble tre poeng foran på førsteplassen, til tross for at han spilte én kamp mer enn Belgia, da Christoph Baumgartner scoret to ganger i løpet av de siste 10 minuttene for å ta en 2-0 seier på Sverige.
Skandinavene risikerer ikke å nå en Euro-turnering for første gang siden 1996, fire poeng bak Belgia.
Haalands brakk hjalp Norge til å komme tilbake fra det dramatiske tapet mot Skottland i helgen med en 3-1-seier over Kypros.
Det holdt liv i deres slanke håp om å nå en første store turnering siden 2000, selv om de bare ligger på tredjeplass i gruppe A og bare ligger et poeng foran Spania etter å ha spilt to kamper mer enn de tre ganger mesterne.
Gruppeledere Skottland var uberørt av en nesten to timer lang pause forårsaket av kraftig regn, da de beholdt sin 100 prosent rekord med en 2-0 seier over Georgia.
Callum McGregor scoret i det sjette minuttet under sprø forhold før kampen ble avbrutt.
En rekke inspeksjoner på banen fant sted midt i rapporter om at Georgia ønsket at kampen ble utsatt før den endelig ble gjenopptatt klokken 21:35 lokal tid (1935 GMT) og Scott McTominay fikk poengene.
– Polen i vanskeligheter –
Polen falt til fjerdeplass i gruppe E etter å ha tapt en tomålsledelse for å tape 3-2 for Moldova i Chisinau.
Moldova, som bare hadde vunnet én av sine siste 43 EM- og VM-kvalifiseringskamper, så ut til å ha blitt sendt trygt av mål fra Arkadiusz Milik i første omgang og Robert Lewandowski.
Men Ion Nicolaescus bransje fikk Polen til å snuble og Vladyslav Baboglo, som spiller for klubbens ukrainske lag Oleksandriya, slo Wojciech Szczesny til å score en spektakulær vinner i det 85. minutt.
Moldova, 171. på FIFA-rankingen, ligger nå på tredjeplass i gruppetabellen, ett poeng bak andreplasserte Albania, som slo Færøyene 3-1.
Ungarn tok ledelsen i gruppe G ved å slå Litauen 2-0, nivå på poeng med Serbia etter deres 1-1 uavgjort mot Bulgaria.
jc/mw
