Federico Ceccherini then wasted a good opening for the home side, as he headed over a cross from close range.
Balotelli was given the chance to score his second of the evening moments into the second half, but Francesco Bardi did well to push over his fierce strike.
Approaching the hour mark, Livorno took the lead. Paulo Sergio Betanin latched onto a through-ball and kept his composure to fire a shot past Abbiati.
© Getty Images
M'Baye Niang should have levelled for the visitors when he received the ball at the back post, but he sliced his attempt wide.
Milan wasted another big chance to score as Nigel de Jong headed a free kick over the bar from close range.
With seven minutes left to play, Milan equalised when Balotelli fired home a stunning long-range free kick.
In the final minute of the contest, Balotelli was denied his chance of a hat-trick when he saw his long-range strike come crashing off the bar.