After Juventus beat Reggina 1-0 on Saturday, to move to 66 points, the pressure was on Milan and they responded with a second half Crespo header and an Andrea Pirlo penalty to ensure their eighth successive league win.
It was a grim debut as Roma coach for Bruno Conti who saw defender Christian Panucci sent off in the 70th minute and then skipper Francesco Totti was given the red card.
After an evenly balanced first 45 minutes, Milan went in front after Crespo rose above Panucci at the back post to head home a superb cross from Kakha Kaladze.
Crespo scored Milan's goals in their two 1-0 wins in their recent Champions League tie against Manchester United and the striker, on loan from English club Chelsea, is enjoying a great spell of form as he stands in for the injured Andriy Shevchenko.
Milan doubled their lead when Panucci handled a Crespo header inside the area and was dismissed before Pirlo slotted home the penalty.
To add to a miserable night for Roma, who parted company with coach Luigi Del Neri last week, Totti was sent off in the final moments after petulantly kicking out at Milan's Massimo Ambrosini.
Third-placed Inter Milan, 16 points behind the leaders, held out for a 3-2 victory over Fiorentina at the San Siro but had their Brazilian striker Adriano stretchered off with a knee injury in the first half.
Inter, who have been drawn against Milan in the Champions League quarter-finals, went ahead in the 27th minute with a fine volley from Argentine midfielder Esteban Cambiasso. But they were pegged back five minutes before the break when Giampaolo Pazzini netted with an acrobatic effort.
Another Argentine, Juan Sebastian Veron fired Inter back in front eight minutes after the restart with a thundering shot from 20 metres and the game looked over when Colombian Ivan Cordoba scored in the 65th minute.
Inter were given a late scare three minutes from the end, Cordoba turning a low cross from Fiorentina's Japanese midfielder Hidetoshi Nakata into his own net.
CRUDE CHALLENGE
Lecce started well at Udine, going ahead in the 31st minute with Alex Pinardi finishing off a swift break but 10 minutes later Zdenek Zeman's side were reduced to 10 men when Mali defender Souleymane Diamoutene was dismissed for a crude challenge.
Within a minute Udinese were on level terms through a left-foot volley from David Di Michele and it was the in-form striker who grabbed the winner at the end for his 11th league goal of the season.
Sampdoria suffered their second successive defeat but the loss to bottom club Atalanta will hurt much more than last week's loss to Milan.
Atalanta, who now have 13 points from their last seven games, took an early lead through the exciting Nigerian forward Stephen Makinwa.
After Samp's Francesco Flachi had a penalty saved, former Atalanta midfielder Cristiano Doni brought Samp back into the game with a superb free-kick but a header from the experienced defender Cesare Natali gave the Bergamo side a win that keeps their survival hopes alive.