The France international took his tally for the season into double figures, with all 10 of his strikes coming in San Siro.
Giroud netted twice in quick succession just before half-time after Rafael Leao had opened the scoring for the Rossoneri in the 24th minute, while Franck Kessie completed the rout 11 minutes from time.
The reward for Stefano Pioli's side is a mouth-watering clash with rivals Inter in the last four next month.
Milan had won just once in its nine previous Coppa Italia showdowns with Lazio, failing to score in the last five, but they ended that drought midway through the first half.
Leao raced onto Alessio Romagnoli's well-timed throughball before neatly slotting past former Rossoneri goalkeeper Pepe Reina from a tight angle.
The Portugal international then turned provider four minutes before the break, squaring for Giroud to round off a quickfire Milan counter.
Giroud, who netted a match-winning brace against Inter on Saturday, was also in the right place on the stroke of half-time, peeling away at the far post to turn home Theo Hernandez's low cross.
Lazio arrived at San Siro on a four-match unbeaten streak since a 2-1 defeat by Inter on its last visit to Milan.
But things got worse for them midway through the second half when talisman Ciro Immobile, who had been involved in five goals in as many appearances against Milan, limped off injured.
And the host put the icing on the cake in the 79th minute; a deep free-kick into the box was only cleared as far as Kessie, who drilled past Reina.