Portugal’s captain scored with a dipping set-piece effort just before halftime to join Ali Daei, who netted 109 times for Iran, on a century of goals.
The 35-year-old was a constant threat to Sweden’s back line in the early exchanges, hanging on the shoulder of the last defender before bursting forward to beat the offside trap, but Sweden goalkeeper Robin Olsen was equal to the task.
That all changed when Gustav Svensson received his second yellow card and was sent packing after a reckless challenge on Joao Moutinho on the edge of his own box just before halftime.
Ronaldo stepped up and smashed a dipping effort beyond the despairing dive of Olsen and just under the crossbar before breaking into a wide smile as he celebrated with his team mates.
Sweden were struggling to contain the visitors and Ronaldo struck again in the 73rd minute with another curling, dipping effort, this time from open play, to leave himself just eight goals short of Daei’s international scoring record.
Portugal’s Joao Moutinho credited the Swedes for making it difficult for them early on, but that all changed with the dismissal of Svensson.
“Of course the red card was good for us, we tried to circulate the ball to find spaces, and happily we scored two great goals from Ronaldo,” he said.
With two wins from two games Portugal top Group 3, ahead on goal difference of France, who beat Croatia 4-2, with the Swedes third and the Croatians bottom.
France meet Portugal in a top-of-the-table clash in Paris on Oct. 11, while Croatia host Sweden on the same date.
Meanwhile, Denmark held England to a 0-0 draw in an uninspiring match at the Parken Stadium.
The hosts had the best chances in the League A Group 2 match with midfielder Christian Eriksen involved on both occasions.
Belgium lead the group with six points from two games with England on four, Denmark one and Iceland none.
Striker Michy Batshuayi scored twice as Belgium eased to a comprehensive 5-1 victory over Iceland.