Rafael Leao ended a difficult week with the only goal in Saturday's 1-0 win over Verona which drew AC Milan level with Serie A leaders Inter Milan, while Juventus fell to their first defeat of the season, 4-2 at Sassuolo.
Portugal winger Leao netted his third goal in as many league matches in the eighth minute at a sodden San Siro to move Milan up to second on 12 points from five games.
Leao's winner was one of the few highlights of a largely uninspiring performance from a much-changed Milan side missing injured captain Davide Calabria and France pair Mike Maignan and Theo Hernandez.
But it was a welcome three points after being destroyed by local rivals Inter last weekend and failing to capitalise on their dominance in Tuesday's Champions League stalemate with Newcastle United.
Milan's star man Leao, wearing the skipper's armband in Calabria's absence, answered some of his critics following poor displays in both of those matches, even becoming a figure of fun for falling over his own feet while trying to backheel in a goal against Newcastle.
"Rafa did what he needed to do," said Milan coach Stefano Pioli.
"He just needs to keep going and realise that when you become a great player you need to overcome or at least deal with a lot of pressure."
Kick-off was delayed by nearly half an hour due to a sudden hailstorm which battered Milan, and the away fans then ruined the pre-match minute's silence in honour of former Italian president Giorgio Napolitano, who died aged 98 on Friday.
Napolitano, who was head of state between 2006 and 2015, was a leading member of Italy's Communist Party from the 1970s until its dissolution in 1991, while Verona's hardcore support is among the most right-wing in a country where fascist fan groups are widespread.
Szczesny's bad day
Milan supporters drowned out the Verona supporters with an enthusiastic applause, started by both sets of players, as they were also remembering former Italy midfielder Giovanni Lodetti.
Lodetti, who also died on Friday aged 81, won two Serie A titles and two European Cups in the 1960s in a Milan side led by icon Gianni Rivera, and was also part of the Azzurri team which claimed the 1968 European Championship on home soil.
Juventus are two points behind the Milan clubs in fourth after falling to an awful defeat at Sassuolo marked by individual errors.
Andrea Pinamonti's third goal in as many games in the 82nd minute, after Wojciech Szczesny patted out Armand Lauriente's shot to the Italy international, and a stoppage time Federico Gatti own goal made sure of the points for Sassuolo just as Juve looked set for a grandstand finish.
It was a bad day for Poland goalkeeper Szczesny as he was at fault for Lauriente's 12th-minute opener and shown up by a Domenico Berardi strike which restored the hosts' lead four minutes from the break after Matias Vina's own goal put the away side level.
Szczesny also gave Gatti the pass which the young defender inexplicably volleyed back into his own goal.
Berardi was a summer target for Juve but failed to present a bid which could tempt Sassuolo to sell the Italy winger, who crowned his 300th Serie A appearance with his 116th goal in the division.
Pinamonti's strike came four minutes after Federico Chiesa thought he had set up a chance to snatch the points by levelling for Juventus with a deflected strike.
It was Chiesa's fourth goal of the season but instead of pushing Juve on to the win Massimiliano Allegri's team collapsed to a poor loss.