The Italy international delivered a masterclass in finishing to help inflict a first defeat of the season on the Rossoneri.
He broke the deadlock from the penalty spot before expertly controlling a volley past Gianluigi Donnarumma to make it 2-0 before the break.
His treble was completed just three minutes into the second half, with Luis Alberto adding a fourth shortly after. Riccardo Montolivo pulled one back for the visitors, but Lazio – who lost Marco Parolo to a stoppage-time red card – never looked like relinquishing their grip on the three points.
The win means Simone Inzaghi's men remain unbeaten this season, but the result raises questions over a Milan side who invested more than €200million ahead of the campaign.
Kick-off was postponed by one hour after torrential rain in Rome, but there was little sign of any waterlogging on the pitch as both sides zipped the ball around with purpose in the early stages.
The visitors had two sights of goal in the opening 10 minutes, but Fabio Borini's crisp volley was blocked and Thomas Strakosha got down well to keep out Franck Kessie's low shot from the edge of the box.
On-loan Sunderland forward Borini was in the thick of the action again in the 13th minute as his whipped shot from distance was again safely gathered by Strakosha.
Lazio's first opportunity came shortly after, but Dusan Basta was somehow unable to turn the ball in from barely a yard out after a teasing corner had caused havoc in the Milan area.
The breakthrough came seven minutes before the break after Kessie was penalised for a clumsy challenge on Alberto in the area. Immobile stepped up and thrashed the penalty past a helpless Donnarumma.
Immobile doubled his tally just five minutes later, meeting Senad Lulic's deep cross with a fine first-time volley into the bottom corner.
The half-time break did little to halt the striker's flow as he soon found himself on the end of a well-worked move involving Marco Parolo and Senad Lulic, before duly stabbing the ball past Donnarumma.
The home side were rampant and just a minute later they made it 4-0. Immobile turned provider as his throughball was met by a rampaging Alberto to slot the ball home.
Milan were shellshocked, but gave themselves the faintest of lifelines just before the hour. Hakan Calhanoglu's long-range effort crashed into Montolivo, but the Italy international found himself in enough space to spin and place the ball past Strakosha.
Parolo picked up a second yellow at the death to blot Lazio's copybook, but the result underlined their potential to challenge at the top end of the table this term.
Key Opta facts:
- Lazio scored four goals against AC Milan in Serie A for the first time since October 1999 (4-4 at Olimpico).
- Lazio are unbeaten in the first three Serie A games for the first time since 2012-13.
- AC Milan have won only one over the last eight away Serie A matches (D4 L3).
- Ciro Immobile has had a hand in five of the six Lazio’s goals in this Serie A (four goals, one assist).