Bruno Fernandes struck the opening goal on 39 minutes before Ronaldo tapped in a scrappy second late on to clinch second place in Group B behind winners Ukraine, who drew 2-2 in Serbia.
Iranian striker Ali Daei holds the world record with 109 international goals scored between 1993 and 2006.
“All records must be broken and I will beat that record,” said Ronaldo.
Portugal became the 17th nation to qualify for next year’s multi-host tournament, which kicks off in Rome on June 12, joining the likes of world champions France, Spain, Italy and England.
“We can’t give the match high marks for style,” said Portugal coach Fernando Santos, who admitted the heavy pitch made life challenging for his team.
“I’m very happy for my players because the qualifying campaign has been more difficult than we expected.
“We’re through to the finals of a major tournament for an 11th straight time. You’ve got to believe in these players.”
Portugal knew they would book their place at Euro 2020 with a win or by matching Serbia’s result from their game in Belgrade.
But they were made to work hard by a Luxembourg team ranked 96th in the world that notably held France to a 0-0 draw in 2018 World Cup qualifying.
Sporting Lisbon midfielder Fernandes broke the deadlock before half-time, controlling Bernardo Silva’s pinpoint pass expertly before lashing in from 20 yards.
Ronaldo, who smacked in a hat-trick in Thursday’s 6-0 thrashing of Lithuania, moved to the brink of his international century four minutes from time.
Silva’s far-post cross was forced towards goal by Diogo Jota, with Luxembourg goalkeeper Anthony Moris getting a hand to the ball before Ronaldo turned in from the goalline.