Diaz, 23, on loan from Real Madrid until the end of the season, doubled his goal tally for the season with first-half efforts before Belgium's Divock Origi and Portugal's Rafael Leao contributed after the break to send the champions behind leaders Napoli on points difference.
Atalanta host Lazio on Sunday before Luciano Spalletti returns to Roma with Napoli
Diaz opened the scoring in San Siro after 16 minutes after a long-range run was finished with a sliding effort.
The former Manchester City playmaker claimed his second after receiving an Origi pass and smoothly finishing home four minutes before the break.
Origi was on the scoresheet for the first time in the league this season after 65 minutes as he fired his effort into the top corner.
Last season's Serie B play-off winners Monza, owned by former Milan president Sivlio Berlusconi, claimed one back five minutes later as Filippo Ranocchia scored a superb free-kick for the outfit based to the north of the city.
The three points were confirmed with six minutes left as Leao, who looks set to go to the World Cup with his country, added his fifth goal of the season.
Earlier, former France international Franck Ribery bid a tearful farewell to football as he took a lap of honour ahead of Salernitana's 1-0 win at home to Spezia.
The 39-year-old announced his retirement on Friday after succumbing to a persistent knee injury which had kept him out of action since the opening weekend of the season.
Later, Fiorentina host Milan's cross-city rivals Inter Milan on the game's final day.