Lazio hosted AC Milan in the two sides' third Serie A fixture of the season - despite the game almost getting postponed due to a storm that hit the region and flash flooding threatened the fixture - the game was due to kick off at 14:00 GMT but officials decided to push it back one hour.
AC Milan travelled to the Olimpico Stadium with two wins out of two - a 3-0 victory away from home against Crotone and a 2-1 win at home to Cagliari saw them in fourth place at the time of kick-off.
Lazio faced SPAL in their opening Serie A game of the season which ended in a goalless draw. They managed a victory in their second fixture as they beat Chievo 2-1 away from home - Lazio went into the game in eighth place.
The game started as a cagey affair with Milan seeing the majority of possession. The first half-chance of the game fell to Milan forward Fabio Borini - he received the ball on the left wing, cut in onto his favoured right foot and struck the ball well - though it was a comfortable save for Strakosha.
Lazio had a penalty appeal in the 25th minute - Luis Alberto dribbled the ball into the box and was seemingly brought down by Musacchio. The ref shook his head and gestured for the Lazio man to get to his feet and continue with the game.
Another penalty shout for Lazio just eight minutes before the half-time whistle. Luis Alberto went down again, this time under the challenge of Franck Kessie and the referee blew the whistle and pointed to the spot. Ciro Immobile stepped up confidently to take the kick and blasted the ball into the left side of the goal - Donnarumma went the right way but couldn't get close.
Just four minutes later Lazio doubled their lead - AC Milan still hadn't recovered from the first goal. Senad Lulic whipped the ball in from the right wing and Immobile was there again to volley the ball past Donnarumma to get his second of the game.
It took three minutes after the halftime break for Immobile to complete his hat-trick. Great work down the left wing and a low cross found Marco Parolo who bundled the ball through to Immobile - he had acres of space inside the Milan six-yard box and placed the ball into the bottom left corner of Donnarumma's goal.
Just 60 seconds after Immobile's third, the hat-trick hero turned provider for Luis Alberto. Immobile latched onto a great through-ball but inadvertently took the ball wide - he managed to lift his head and play a left-footed pass across the area to give Luis Alberto the simplest of tap-ins. Milan torn apart on the counter-attack.
AC Milan engineered a goal back. A free-kick taken by Hakan Calhanoglu hit the wall but fortunately dropped back at his feet, he hit the ball goal-wards and found Montolivo unmarked in the Lazio penalty area. An easy finish for the Milan midfielder as he slotted the ball past Strakosha.
The final action of the game was a sending off for Lazio's Marco Parolo. Milan broke on the counter-attack and Parolo made a rash challenge after already being booked earlier in the game. The referee had no choice but to dismiss the midfielder and Lazio finished the final two minutes of stoppage time with ten men.
AC Milan struggled defensively throughout the 90 minutes and clinical finishing from Italian forward Ciro Immobile was the difference between the two sides. Lazio move up into third place just two points behind Serie A leaders Juventus.