Pep Guardiola's side took to the pitch for the first time since suffering a surprise 2-1 home defeat against Brentford in the Premier League on November 12, their final game before the World Cup break.
The Spanish boss named a starting lineup mixed with both youth an experience, with De Bruyne and captain Ilkay Gundogan the only two senior City players out of 16 who returned after representing their country at the World Cup in Qatar.
Goal machine Haaland, who has enjoyed a period of rest and recouperation after Norway failed to qualify for the World Cup, was also in the first XI along with the likes of Riyad Mahrez, Sergio Gomez, Cole Palmer and Stefan Ortega.
City made a strong start to proceedings and opened the scoring in just the fifth minute when De Bruyne intercepted a poor past out from Girona goalkeeper Paulo Gazzaniga before slotting a left-footed strike from just inside the area into the bottom corner.
The Premier League champions then doubled their lead in the 18th minute courtesy of a strike from none other than Haaland, who has scored a remarkable 23 goals in 18 competitive matches in all competitions since joining the club over the summer.
Mahrez played through De Bruyne on the right side of the penalty area before the Belgium playmaker picked out Haaland for a simple first-time finish from close range.
Girona ended the first half strongly and almost pulled one back when Valentin Castellanos, formerly of New York City FC, saw a header glance the inside of the post.
No changes were made at the break by Guardiola, but Morgan Rodgers - who looked lively down the left flank - was replaced just five minutes into the second half by highly-rated forward Carlos Borges, who has recorded 16 goals and 11 assists in 18 games for the academy side so far this season.
Indeed, a number of academy starlets impressed for the Citizens, with Jadel Katongo and Shea Charles forming a solid partnership at centre-back, while Rico Lewis, Alex Robertson, Rowan McDonald and Oscar Bobb were also given run-outs in the senior team.
Haaland lasted for 58 minutes and was replaced by Bobb just moments after City should have added a third, only for Palmer to scuff his effort before Mahrez dragged a shot narrowly wide.
Girona then hit the post for a second time in the 62nd minute when substitute Valery Fernandez struck a powerful strike from just a few yards out after receiving the ball form former Leeds midfielder Samuel Saiz.
In the final 15 minutes, a brilliant nutmeg and skillful run from De Bruyne resulted in City's No.17 setting up Borges for a strike on the right flank, but his effort was blocked by Girona's covering defenders.
Despite Girona's valiant efforts to pull a goal back, City held on to claim victory in their only warm-up match before locking horns with Liverpool in the fourth round of the EFL Cup next Thursday.
Manchester City (4-3-3): Ortega; Lewis, Katongo, Charles, Gomez; Gundogan (Robertson 77'), De Bruyne (McDonald 79'), Palmer; Mahrez, Haaland (Bobb 58'), Rogers (Borges 50')
Girona (4-4-2): Gazzaniga; Martinez, Bueno, Terrats (Espinosa 45'), Gutierrez (Vallejo 74'); Couto (Roca 74'), Romeu, Garcia (Urena 74'), Villa (Saiz 45'); Martin (Fernandez 45'), Castellanos (Stuani 45')