"You saw a hungry team," the Real coach José Mourinho said. "Everyone came in charged up, Real Madrid gave them no chance. We started and smashed immediately."
Karim Benzema netted inside two minutes, José Callejón doubled the lead four minutes later, Gonzalo Higuaín made it 3-0 in the ninth, and Mesut Ozil scored the fourth in the 20th minute.
Real's pace and aggression were too much for the Croatian champions on an evening of total domination.
Callejón and Benzema scored again after the break but as they eased off, Zagreb's Fatos Beqiraj scored the first goal against Real in Europe this season with a header in the 81st and Ivan Tomecak bundled in a second at the death.
Real's victory canter made it five wins from five and put them seven points head of second-placed Ajax.
Mourinho, who rested Iker Casillas and Cristiano Ronaldo, handed the Turkey midfielder Nuri Sahin his first start after an injury-delayed start to his Madrid career, and the hosts made a whirlwind start.
The Frenchman Benzema slotted home from Ozil's pullback after a swift passing move sliced open the visitors, and the former Real youth team forward Callejón finished off a swift break.
Higuaín cut inside his marker and then dinked the ball over the keeper at his near post, before Germany's Ozil put away a loose ball after Higuaín's shot had been parried.
Callejón broke the offside trap to slot away number five in the 49th and Benzema made it 6-0 on 66 minutes.
As the game ran out of steam, Beqiraj nodded in a neat goal and Benzema blasted an overhead kick against the crossbar before Tomecak's late effort.