Los Blancos were the strong favourites to advance ahead of kickoff, having recorded a 4-2 victory when the pair met in the first leg at the Bernabeu last week.
A free kick from Alex Granell came off the Madrid crossbar in the early stages of the contest as Girona made a fast start to the second leg on home soil.
Benzema had the away team's first half-chance in the eighth minute, but the Frenchman's effort from a Dani Carvajal cross just missed the post.
Benzema had another opportunity in the 15th minute when he was presented with a gift inside the Girona box following lacklustre defending from Pedro Porro, but goalkeeper Gorka Iraizoz did enough to make the clearance.
Iraizoz also had to keep out a strike from Toni Kroos in the 24th minute, but Girona were having their moments on the break, with Anthony Lozano causing problems for the likes of Raphael Varane and Sergio Ramos.
Madrid made the breakthrough in the 27th minute, however, when Benzema combined with Carvajal in a dangerous area before expertly finding the far corner of the net with a fine finish.
Navas was also busy down the other end, however, saving from Granell 10 minutes before the break and also having to react quickly to an effort from Stuani in the final moments of the first period.
Real doubled their advantage in the 43rd minute though and it was another excellent finish from Benzema, who curled one into the far corner of the net to make it 17 goals for the season in all competitions.
Girona took to the field at the start of the second period knowing that they would need four unanswered goals just to draw level with the European champions on aggregate.
Madrid had the first serious chance of the second half in the 53rd minute, but Vinicius saw his effort from a low Benzema cross deflected just wide of the home side's post.
Lucas Vazquez should have sent Madrid 3-0 ahead in the 65th minute when Iraizoz saved a low Asensio strike right into his path, but the Spaniard's effort clipped the outside of the post.
Bale continued his recovery from injury off the bench in the 67th minute, taking the place of the impressive Vinicius.
Girona got their name on the scoresheet in the 71st minute when Porro collected a clever pass from substitute Alex Pachon before finding the bottom corner of the net for 2-1 on the night.
Real answered back with their third in the 76th minute though, Llorente finding the bottom corner with a powerful strike from outside the box.
Both teams had chances to add to the scoring late on, but Raul Garcia turned wide of the Madrid post in the 87th minute before Bale just failed to meet a cross from Asensio moments later.
Real Madrid have joined Barcelona, Valencia and Real Betis in the semi-finals of this season's competition, with the last-four draw due to be made on Friday.
GIRONA (5-3-2): Iraizoz; Porro, Ramalho, Espinosa, Muniesa (Juanpe 46'), R Garcia; Granell, Paik (Pachon 69'), Luiz; Stuani (Valery 59'), Lozano
REAL MADRID (4-3-3): Navas; Carvajal, Ramos (Nacho 63'), Varane, Marcelo; Kroos, Llorente, Ceballos; Lucas, Benzema (Asensio 58'), Vinicius (Bale 67')