The victory leaves Portugal second in Group A, a point behind Serbia who they host in their final game.
Ronaldo knocked in two penalties and rounded off the scoring with a header as he recorded his 58th hat-trick for club and country.
Bruno Fernandes and Joao Palhinha added the other goals.
Fernandes superbly drove a low shot into the bottom-right corner as the hosts went 3-0 up inside 18 minutes.
However, all the headlines will rightly belong with his Manchester United team-mate who now has 115 international goals.
The 36-year-old broke Iran striker Ali Daei’s record of 109 goals last month.
Portugal travel to the Republic of Ireland in their penultimate Group A match before facing Serbia.