AC Milan had Mario Balotelli to thank as they scraped a 2-2 draw against relegation-strugglers Livorno. They were second best for the majority of the match, and only a brilliant late free kick saw them rescue a point from the amaranto. They stay floating in mid-table, while the point is enough to see Livorno provisionally move outside the bottom three.

Despite the final score, Milan could have hardly wished for a better start, taking the lead inside the opening 10 minutes. Balotelli got just enough on Kaká's low pass across the box to find the back of the net and silence the Armando Picchi.

However, Livorno responded excellently to going behind, and had a good chance to equalise after 15 minutes. Paulinho Betanin put his low shot narrowly wide of Gabriel's post from a tight angle, though really should've squared the pass to his free teammate Pasquale Schiattarella. Emerson Ramos Borges tested the young Milan keeper with a trademark free-kick just over five minutes later, though the Brazilian got down to save at the near post.

Eventually, with just under 20 minutes of the first half remaining, Livorno had a deserved equaliser. The impressive Luca Siligardi curled an effort beautifully inside the far post from outside the area for 1-1, after a sustained spell of amaranto pressure. Livorno keeper Francesco Bardi had had next to nothing to do since Milan took the lead, and the sudden eruption of noise probably served to wake him from a mid-game nap.

The rossoneri's troubles continued after conceding, constantly looking vulnerable on the counter-attack and struggling to string together coherent attacking moves under pressure from the energetic hosts. That continued into the second half, though they found a way through out of nowhere within 10 minutes of the restart. Balotelli was sent clean through on goal, and only a fantastic stop from young keeper Bardi kept the scores level.

It would prove to be a huge save, with Livorno surging forward to take the lead just minutes later. Siligardi's beautiful through ball found Paulinho in acres of space, courtesy of Cristián Zapata's bizarre concept of an offside trap. The Brazilian gave Gabriel no chance with the finish, and the hosts had the advantage. Unsurprisingly, the last 25 minutes of the match weren't the most comfortable for the amaranto.

M'Baye Niang should've levelled the scores with just under 20 minutes left, though on a swift counter-attack he sliced his shot wide of the near post. Milan began to dominate possession and push the hosts deeper and deeper. Agonisingly for Livorno, Balotelli produced a magnificent equaliser with just seven minutes left on the clock. A spectacular free kick left Bardi rooted to the spot, flying into the top corner and rescuing a last-gasp point.

Balotelli produced another moment of individual magic in the final couple of minutes of normal time, though the Livorno crossbar was just enough to prevent him nicking a spectacular winning goal -- one which would've been incredibly harsh on the amaranto.

Livorno: Bardi; Ceccherini, Emerson, Coda; Mbaye (Lambrughi 92'), Duncan (Rinaudo 94'), Luci, Biagianti, Schiattarella; Paulinho, Siligardi (Greco 76').

Goals: Siligardi (26'), Paulinho (58').

AC Milan: Gabriel; Emanuelson, Mexès, Zapata, Poli (De Sciglio 75'); Nocerino (Niang 59'), De Jong, Montolivo; Kaká, Birsa (El Shaarawy 38'); Balotelli.

Goals: Balotelli (7', 84').