Despite being without Gareth Bale and Luka Modric, Madrid produced a professional display against a Galatasaray team that put up a fight but was ultimately made to rue a lack of quality in the final third.
Madrid was greeted by a banner that read 'your nightmare is back again' and the home side certainly caused them some problems, but Lady Luck smiled on Zinedine Zidane's men as Kroos opened the scoring with a deflected strike on his 100th Champions League appearance.
Eden Hazard should have wrapped things up in the second half but he hit the crossbar, though luckily for him Gala was unable to make the most of the let-off, as Madrid moved up to second in Group A.
A thrilling opening saw both sides create opportunities, with Hazard wasting an early chance before Thibaut Courtois produced two excellent saves to thwart Florin Andone.
But a stroke of fortune helped Madrid take the lead in the 18th minute.
Hazard tried to cut a return pass back to Karim Benzema and, although he did not find his intended target, Kroos was on hand to strike, his effort beating Fernando Muslera via a deflection.
Gala probably should have levelled seven minutes before the break, but Younes Belhanda's effort from the middle of the box was feeble and Courtois made the stop.
Hazard inexplicably failed to double Madrid's lead just past the hour, hitting the crossbar after latching on to Benzema's pass and skipping past Muslera.
The host had a final opportunity to equalise six minutes from time, but Steven Nzonzi put his header over despite being unmarked, letting Madrid off the hook.