Franck Kessie fired AC Milan to back-to-back wins and up to fourth place in Serie A as his late penalty downed Parma 2-1 at San Siro.
The Gialloblu had taken the lead through Roberto Inglese, who nodded in Matteo Scozzarella's pass after half-time, but Patrick Cutrone soon levelled with a fine volley.
In the 71st minute, Milan were awarded a spot-kick for Alessandro Bastoni's handball, following a VAR review, and Kessie made no mistake when sending Jacopo Sepe the wrong way.
Lazio were then thwarted in their bid to reclaim the last Champions League spot as basement boys Chievo held them to a 1-1 draw in Verona.
Sergio Pellissier's powerful first-half opener was not in the script and it took Lazio until the 66th minute to restore parity as Ciro Immobile found the bottom corner.
Romulo's first-half dismissal set the tone for a bad-tempered clash between Torino and Genoa at the Stadio Olimpico, where two goals in a minute secured a 2-1 comeback victory for the hosts.
Genoa lost Romulo when the Brazilian right-back picked up two yellow cards in three minutes, the second for a high foot against Soualiho Meite. Nevertheless, Christian Kouame fired the Grifone ahead.
Cristian Ansaldi equalised with a daisy-cutter on the stroke of half-time and, to Torino's disbelief, the game was lost moments later when Andrea Belotti converted a penalty following a Sandro foul.
Cagliari held on for a point from a 1-1 draw at Frosinone despite having Antonio Barella sent off.
Francesco Cassata scuffed in relegation-threatened Frosinone's opener but Cagliari responded through a rare goal from Diego Farias, a regular injury absentee. Barella departed due to a second yellow earned for sliding in on Raman Chibsah with five minutes remaining.
Elsewhere, Sassuolo and Udinese shared the spoils from a goalless draw at the Mapei Stadium.
Alfred Duncan saw his goal ruled out for offside while Rolando Mandragora went closest for Udinese.