Roberto Martinez’s Portugal wrapped up top spot in Group A1 with a game to spare, securing their place in the next round in March.
France, Germany and Italy are also already through to the last eight.
Poland were the better side early on but failed to take their chances in Porto and the home side made them pay, netting four times in the last 20 minutes.
“We couldn’t impose ourselves on the game in the first half,” said Portugal goalscorer Rafael Leao.
“(Coach) Roberto MartÃnez’s approach in the locker room was important; it was the key to changing the pressure at half-time.”
Ronaldo volleyed over from close range shortly before the interval, as Portugal failed to register a shot on target in the first half.
Dominik Marczuk almost broke the deadlock in the 58th minute, but Portugal goalkeeper Diogo Costa produced a brilliant fingertip save to deny him.
The hosts broke from the resulting corner to score less than 60 seconds later, as Leao powered forward before finding Nuno Mendes, then continuing his run to meet the Paris Saint-Germain full-back’s cross with a powerful header.
Portugal were awarded a penalty when Diogo Dalot’s strike flicked off Jakub Kiwior’s hand at point-blank range and was saved by Marcin Bulka.
Ronaldo stepped up to dink home a ‘Panenka’ spot-kick.
That goal ended any hopes Poland had of staging a comeback and Fernandes added a third for Portugal with 10 minutes left, crashing the ball in off the crossbar from just outside the box.
Pedro Neto also got on the scoresheet, collecting Ronaldo’s pass and rifling past Bulka at his near post.
There was still time for Ronaldo to double his tally and move onto 135 international goals, acrobatically volleying home Vitinha’s cross from close range in the 87th minute.
Marczuk drilled in a consolation for Poland, but they can no longer qualify for the knock-out stages and will be relegated if they lose to Scotland next week.
In the other match in the group, Scotland gave their hopes of avoiding the drop a massive boost as John McGinn scored a late winner in a 1-0 victory over 10-man Croatia.
Petar Sucic was sent off in the first half, but Croatia almost hung on for the point they needed to qualify with Portugal, only for McGinn to strike in the 86th minute.
– Spain roll on –
European champions Spain stayed unbeaten in Group A4 with a 2-1 win over Denmark in Copenhagen.
Luis de la Fuente’s visitors started strongly and went close to a 13th-minute opener when the in-form Ayoze Perez rattled the crossbar.
Spain took an early lead after Denmark carelessly gave the ball away on the edge of their own box.
Perez played in Mikel Oyarzabal who took an excellent first touch and slipped the ball past goalkeeper Kasper Schmeichel and in at the near post.
Villarreal forward Perez, who only made his international debut in June, doubled Spain’s advantage with a low, left-footed finish into the bottom corner after being picked out by Dani Olmo.
Gustav Isaksen pulled one back for Denmark late on, pouncing on a terrible mix-up between Fabian Ruiz and ‘keeper David Raya.
“A very, very happy night for me (with a goal and an assist), but the most important thing is going through top of the group,” Perez told uefa.com.
The other game in Group A4 saw Switzerland relegated by Aleksa Terzic’s late equaliser in a 1-1 draw with Serbia.
Romania’s Group C2 game against Kosovo in Bucharest was suspended in injury time and then abandoned with the game goalless after the visiting players walked off the pitch following chants of “Serbia” from the home fans.
“The UEFA Nations League match between Romania and Kosovo has been abandoned. UEFA will communicate further information in due course,” said governing body UEFA on its website.
In League D, San Marino kept their hopes of an unlikely promotion alive as Nicola Nanni scored an injury-time penalty to grab a 1-1 draw with Gibraltar.
By AFP