The LaLiga side had been 1-0 up from the first leg and, after the Italians missed a couple of early chances, Karim Benzema fired them ahead on the night in the 34th minute.
A penalty from captain Sergio Ramos on the hour all but ended the tie, with Luis Muriel clipping in a fine free-kick to pull a goal back for Atalanta before substitute Marco Asensio wrapped things up late on.
Defender Berat Djimsiti fired over from a corner and the Italians were made to pay as Real Madrid started to take control.
It took a fine block from Djimsiti to deny Vinicius Junior after a clever exchange with Benzema in the penalty area to prevent the opening goal which eventually arrived in the 34th minute.
Atalanta goalkeeper Marco Sportiello made a hash of his clearance, which fell to Modric and the Croatian chased the ball down before cutting a pass back for Benzema to fire the Spaniards in front.
Los Blancos almost doubled their lead early in the second half following a fine run from Vinicius but, after powering into the penalty area, the Brazilian stabbed wide from six yards.
As the hour mark approached, Real Madrid were awarded a penalty.
Again, Vinicius was the instigator after he took possession from Atalanta midfielder Ruslan Malinovskiy and charged forwards before being tripped by Rafael Toloi.
Although contact looked to have been just outside the area, Dutch referee Danny Makkelie pointed to the spot and captain Sergio Ramos powered in a penalty past the diving Sportiello.
Atalanta striker Duvan Zapata finally called Courtois into action in the 67th minute, before at the other end Benzema's header was saved and then the Frenchman nodded the rebound against the post.
With seven minutes left, Muriel clipped a well-worked 25-yard free-kick up over the wall into the top corner as several Atalanta players peeled away.
Real Madrid, though, soon restored their two-goal cushion when substitute Marco Asensio drilled the ball into the bottom corner after being picked out by Lucas Vazquez.