Zinedine Zidane's Real bounced back from their 3-1 loss at Tottenham Hotspur last time out by crushing APOEL, with four of the goals coming before half-time.
"It was a very good evening for us," said Zidane.
"We're on the right track. We're doing things well and we're building in strength. It's never easy but it was a complete display and we scored quickly."
The record 12-time winners had to wait until the 23rd minute to take the lead through Luka Modric, but a run of five goals in 15 minutes either side of half-time sent them through in style.
Karim Benzema put worries about his recent form to bed with a double either side of a Nacho effort, before Ronaldo got in on the act after the break.
The Portuguese climbed highest to power a header into the corner from an inviting Marcelo cross.
And the 32-year-old, who has only scored once in eight La Liga appearances this season, scored his eighth Champions League goal this term with an excellent left-footed finish from a tight angle.
Tottenham sealed top spot in Group H with a come-from-behind 2-1 victory at Borussia Dortmund.
Pierre-Emerick Aubameyang put the hosts ahead, but with Real's thumping win sending Dortmund out, Spurs levelled through Harry Kane and Son Heung-Min curled in a 76th-minute winner.
- Liverpool collapse -
Five-time champions Liverpool threw away a last-16 spot as Sevilla roared back from three goals down at half-time to draw 3-3.
Liverpool looked to be cruising into the knockout stage for the first time since 2008/09 when Roberto Firmino and Sadio Mane both scored from flicked-on corners.
A rout similar to the 7-0 thrashing of Maribor in Slovenia earlier in the group phase looked on the cards when Firmino tapped in number three, but Sevilla staged a stirring second-half comeback.
Wissam Ben Yedder beat Alberto Moreno to nod in a free-kick, before slotting in a penalty.
And Argentinian Guido Pizarro struck in the third minute of injury-time to complete the fightback and leave Jurgen Klopp's visitors deflated.
"Fantastic first half and in the second half we made the mistake that we didn't continue playing football," said Klopp.
"We have to control the game with the ball and we didn't play football."
Elsewhere in Group E, Russian champions Spartak Moscow saw their chances hit by an injury-time equaliser in a 1-1 home draw with Maribor.
Sevilla will book a last-16 spot for the second straight season if they can win in Maribor on the final matchday in two weeks' time, while Liverpool have to avoid defeat at home to Spartak.
Lorenzo Insigne inspired Italian Serie A leaders Napoli to a 3-0 victory over Ukrainians Shakhtar Donetsk that kept their hopes alive in Group F.
Winger Insigne made the difference with a magnificent individual effort in the 56th minute, dancing past two defenders before curling into the top corner from 25 yards out.
Further late goals from Piotr Zielinski and Dries Mertens gave their goal difference a boost.
Manchester City secured first place in the group with a 1-0 win over rock-bottom Feyenoord as Raheem Sterling scored an 88th-minute winner.
Napoli need City to beat Shakhtar in the final round of games and see off Feyenoord in Rotterdam to progress.
Turkish champions Besiktas reached the last 16 for the first time in 31 years, as a goal from Talisca secured a 1-1 draw with Porto in Istanbul to wrap up top spot in Group G.
Last season's semi-finalists Monaco are out of Europe altogether, after a woeful performance and 4-1 home loss to RB Leipzig.
The French champions saw the German tournament debutants race into a 3-0 lead through a Jemerson own goal and a Timo Werner brace, and although Radamel Falcao pulled one back, Naby Keita rounded off a stunning win that keeps Leipzig in the hunt.
Leipzig need to better Porto's result on the last matchday. The Bundesliga runners-up host Besiktas, while two-time European champions Porto take on Monaco.