Lazio came into the match in third place in the league and knowing that a defeat would almost certainly rule them out of the title running.
And although the hosts dominated throughout, with Zlatan Ibrahimovic hitting both posts with a single shot, they could not find a way through the Romans' stubborn resistance.
Milan extended their lead at the top to five points but Napoli can close that to just two if they beat Chievo on Wednesday.
Massimiliano Allegri, the Milan coach, said his side had deserved to come away with three points.
"We rushed too much in the first half, Lazio defended very well but they didn't have a single shot on goal," he said.
"We had several good chances, especially Ibra hitting the posts.
"The lads played a good game and deserved the win but this is football.
"However, it's the third game in a row in which we haven't conceded a goal and that's good news.
"What disappoints me most is that we had several chances in the first half but didn't know how to exploit them."
Lazio boss Edy Reja was delighted with the point.
"We knew that we would need luck to get a point at Milan and we struggled a lot," he said.
"We played well defensively. We didn't have the right players today so we concentrated on defence and it went well.
"It's good to be going home with a point."
Lazio remain seven points off the summit but could lose third place to either neighbours Roma or Inter Milan when they play their games.
The first half was a truly forgettable affair as although Milan dominated possession and pinned back Lazio, they created little more than their negative opponents.
The first half-sight of goal came on 27 minutes when Mathieu Flamini's wayward shot went to Ibrahimovic whose reaction header was woefully off target but hit a defender before going behind.
Lazio's best chance came when Milan centre-back Mario Yepes's defensive header landed on the top of his own goal.
On 34 minutes Ibrahimovic teed up Urby Emanuelson on a counter-attack but the Dutchman's finish was wild.
If the first half had been lacking in action, the first 10 minutes of the second quickly made up for it.
Ibrahimovic made space on the edge of the box and smacked a shot beyond Ferdinando Muslera but the ball ricocheted off both posts and back into the goalkeeper's grateful arms.
Flamini's cross-cum-shot was then held by Muslera before Ibrahimovic turned smartly but fired just beyond the far post.
Milan remained on top and were particularly dangerous on the counter with Robinho arriving on the overlap only to see Giuseppe Biava clear his goalbound shot off the line.
The hosts kept pushing but Lazio's gritty determination and resistance continued.
Four minutes from time Ibrahimovic again created space but Biava was there once more to block his shot before Emanuelson, who had an off-night in front of goal, fizzed the rebound well over.
A minute from time Muslera was out quickly to deny Cassano a shooting opportunity and in the last minute of added on time Ibrahimovic had a sight of goal but he too blazed wastefully over.
What the stars mean:
★ Poor ★ ★ Promising ★★★ Good ★★★★ Very good ★★★★★ Exceptional