The Portuguese netted for the eighth game in a row in all competitions, while it was the fourth league outing in succession in which he has found the net at least twice.
A quiet start to 2017-18 saw Ronaldo score just four LaLiga goals before the turn of the year but since late January he has been virtually unstoppable, this stunning display at the Santiago Bernabeu taking his tally to 21 in his past 11 outings across domestic and continental competitions.
His first arrived in the 11th minute, a clinical left-footed finish from Toni Kroos' ball, but Girona pegged the champions back shortly before the half-hour as Cristhian Stuani headed home from a free-kick.
Ronaldo restored Madrid's advantage early in the second period at the end of a fine move and then added an assist for good measure as Lucas Vazquez - who saw a goal wrongly ruled out for offside in the first half - got in on the act.
The matchball was secured soon after the hour as Ronaldo converted a rebound before Stuani bagged his second with another header - his ninth this season via that method, a LaLiga high.
Substitute Gareth Bale joined in the fun four minutes from time and although Madrid conceded their third header of the game to Juanpe, it was fitting that Ronaldo had the last word by rifling in his fourth in stoppage time.
50 - Cristiano Ronaldo has scored his 50th hat-trick in all competitions (club + country). Beast. pic.twitter.com/l7xlOzEFfe— OptaJose (@OptaJose) March 18, 2018
Madrid were stunned 2-1 in the reverse fixture in October and they seemed intent on avenging that defeat as they flew out of the traps and called Bono into action twice in the first seven minutes.
The Girona goalkeeper tipped Ronaldo's fizzing free-kick over and then denied Vazquez following fine set-up play from Karim Benzema.
It was not long before Ronaldo continued his hot streak, however, as Kroos exchanged passes with Marcelo from a corner and picked out the Portuguese to sweep home first time from 12 yards.
Girona were fortunate not to fall two behind midway through the half as Vazquez's finish from Kroos' delightfully disguised ball was incorrectly disallowed.
And Madrid were further riled by that injustice as six minutes later Alex Granell whipped in a free-kick from the left and Stuani was all alone to thump a header beyond Keylor Navas.
If Madrid were frustrated to be level at the break, their vexation was vanquished within two minutes of the restart.
Mateo Kovacic, Vazquez and Benzema were all involved in a glorious team move, the Frenchman slipping through a pass for Ronaldo to finish off the underside of the crossbar.
The Portugal superstar then turned provider shortly before the hour as he received Benzema's pass and unselfishly squared for Vazquez to slot home.
Madrid were rampant as Nacho Fernandez headed against the bar and Ronaldo's hat-trick arrived in the 64th minute, the simplest of tap-ins after Bono parried Benzema's effort.
The lead was cut to two within three minutes as Stuani headed home Borja Garcia's delivery and Madrid showed few signs of having learned their lesson as the Uruguayan was soon left unmarked again, this time glancing wide.
In a whirlwind finish, Bale slotted beyond the advancing Bono before Juanpe headed in Granell's corner but, as if there were to be any doubt, Ronaldo ensured he would dominate the headlines by firing in from another Kroos assist.
Key Opta stats:
- Cristiano Ronaldo has scored more goals than any other player from the top five European leagues in 2018 in all competitions (21).
- Girona are the only team to have scored three headed goals in a LaLiga game against Real Madrid since at least 2003-04.
- Karim Benzema has provided more assists than any other Real Madrid player in LaLiga this season (eight).
- The Frenchman has assisted Ronaldo for 41 goals in all competitions, at least 14 more than any other team-mate.