Kroos lashed home via the underside of the crossbar after Karim Benzema had given the visitors an early lead from Bale’s cross.
Luka Modric was dismissed early in the second half, but Lucas Vazquez extended Real’s lead with 10 minutes remaining.
Iker Losada netted a consolation for the hosts in second-half stoppage time.
Bale was a surprise starter at the Estadio Municipal de Balaidos after being linked with a move away from the club this summer.
The Welshman was heavily involved in the game’s opening goal, escaping the attentions of his marker before teeing up Benzema with a pin-point cross.
Celta responded well and thought they had equalised on the stroke of half-time, but Brais Mendez’s effort was disallowed for offside by the video assistant referee.
Kroos’ stunning 25-yard effort doubled Real’s lead, but the visitors were reduced to 10 men when Modric was dismissed – following another VAR check – for a late challenge on former Arsenal loanee Denis Suarez.
Vazquez finished off a flowing team move to make it 3-0, before second-half substitute Losada beat Thibaut Courtois with a fierce shot into the bottom corner.
La Liga champions Barcelona lost their opening league game of the season on Friday, going down 1-0 to Athletic Bilbao.