Gennaro Gattuso's men won for the first time in five Serie A matches to finish Saturday in the Champions League qualification places after Kessie slotted in from 12 yards 11 minutes from time.
Milan had only just had a spot-kick award overturned via a VAR review after referee Gianluca Rocchi decided Francesco Acerbi could do little when Hakan Calhanoglu drove the ball at his elbow.
But Lazio substitute Riza Durmisi wasted that reprieve by barging into Mateo Musacchio, showing a level of composure in stark contrast to that of Ivory Coastmidfielder Kessie.
Tempers were frayed at full-time as players from both sides were involved in skirmishes, with Gattuso playing the unlikely role of peacemaker.
Pepe Reina, starting once more in place of the injured Gianluigi Donnarumma, made a stunning reaction save in the third minute when Ciro Immobile sidefooted towards the bottom corner after a twinkle-toed run from Joaquin Correa.
Milan struggled to impose themselves during the opening exchanges, but Suso lifted over in the 31st minute following excellent hold-up play from Krzysztof Piatek.
The Poland striker then looped a header narrowly wide before Immobile was unable to make decisive contact on Romulo's cross.
Correa's departure through injury early in the second half hindered Lazio, although Lucas Leiva fired Luis Alberto's right-wing corner into the side netting.
Cristian Zapata came on for injured Milan captain Alessio Romagnoli and embarked upon a mazy 70th-minute run from defence, playing in Piatek to be denied by Thomas Strakosha.
The Lazio goalkeeper then found himself preparing for two penalties in quick succession and guessed incorrectly from the one he faced.
In a taste of what was to come, Lazio boss Simone Inzaghi was sent off for losing his cool with the officials, while Sergej Milinkovic-Savic's rejected penalty appeal following Ricardo Rodriguez's stoppage-time challenge also did little for the visitors' collective mood.
Gattuso's men back in position
Defeat in last month's derby against Inter threatened to derail Milan's season and the subsequent slump could still damage them in the final reckoning. As such, this felt like a must-win contest for Gattuso's side. Lazio are five points back in eighth and below Atalanta and Torino, who also have a game in hand on Milan and fifth-placed Roma.